WIX不会在unistall上停止Windows服务

时间:2018-05-18 14:00:55

标签: c# .net installation wix windows-installer

我在使用wix安装程序时遇到了非常奇怪的情况。 我有自定义BA应用程序,它安装Windows服务并在卸载时删除它。 在Win XP上一切都运行良好,但在Win 10服务没有停止,并没有删除虽然卸载成功处理。 在日志文件中,我看不到与此相关的任何错误。 有什么想法吗?

这是服务安装配置:

    <ServiceInstall
      Id="MyServiceInstaller"
      Type="ownProcess"
      Name="MyService"
      DisplayName="My Service"
      Description="My Service"
      Start="auto"
      Account="[SERVICEACCOUNT]"
      Password="[SERVICEPASSWORD]"
      ErrorControl="normal" />
    <ServiceControl Id="StartMyService"
            Name="MyService"
            Start="install"
            Wait="no" />
    <ServiceControl Id="StopMyService"
                    Name="MyService"
                    Stop="both"
                    Remove="uninstall"
                    Wait="yes" />

1 个答案:

答案 0 :(得分:0)

第2轮

我在这里跳了枪。正如克里斯所说,我们确实需要查看日志。 我认为卸载是挂起的,它似乎根本不是

  1. ARP :我想您应该首先快速检查“添加/删除程序”中是否有两个产品条目? (不要认为这也是问题 - 主要升级失败)。
  2. SharedDllRefCount :服务组件的SharedDllRefCount属性是否设置为yes?请发布整个组件标记,并指定所有属性 - 条件和所有。如果组件被设置为永久性,那将解释事情,但是卸载将无法在XP上运行。启用SharedDllRefCount会在此设置旧版引用计数:
    • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs
    • HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\SharedDLLs
    • 此处有一些SharedDllRefCount 清理详情 MSI not uninstalling .dll files
  3. 条件表 Condition table中是否有任何条目? (特征条件)。
  4. 第1轮(误解了这个问题 - 再次 - 仍然适用了几项):

    1. 调试日志记录 :也许尝试使用详细,调试日志记录运行卸载,看看是否可以获取更多信息关于问题是什么:

      msiexec.exe /x {ProductCode} /L*vx! C:\Your.log
      
    2. 安全软件 :问题框中是否有防病毒软件或安全软件?如果是这样,请在运行卸载之前尝试禁用它。

    3. 事件日志 :也许您可以快速查看事件查看器中的任何线索? ( Windows +点击 R 。键入eventvwr并按OK)。检查不同的日志。

    4. 自定义操作 :您是否有在卸载时运行的自定义操作?如果是这样,什么类型的自定义操作?托管代码?

    5. 服务凭证 :服务帐户的密码在该问题框中是否仍然有效?如果最坏的情况发生,您可以使用这些服务凭据登录(如果可能)并尝试启动和停止服务以检查错误吗?甚至可能尝试使用您自己的管理员帐户运行该服务?这不是理想的任何一种,只应该做到这一点。

    6. 最近StackOverflow上出现了很多服务问题。以下是最近的一些答案: