【问题标题】:WIX installed program not uninstalling correctlyWIX 安装程序未正确卸载
【发布时间】:2009-07-15 20:03:53
【问题描述】:

这是我的情况。

我有两个程序。让我们称它们为程序 A 和程序 B。 他们都使用 WIX 来创建 MSI 包。

A 是 WindowsService,B 是 Windows WCF 服务

当我安装服务时,A 和 B 安装没有问题。 没有打开服务..

当我尝试卸载 A 或 B(顺序无关紧要)时,安装的信息不会从注册表中删除,服务仍会显示在服务管理控制台上。但是目录中的文件会被删除。

我必须转到命令提示符并手动输入“sc delete A.exe(或 B.exe)”才能从注册表和服务管理控制台中删除该服务。

完成后,第二个要卸载的程序将顺利卸载。

不管我先卸载哪个程序,结果都是一样的。

我不知道是什么依赖或什么导致卸载过程无法完全卸载第一个程序..

如果你们有什么想法,请帮忙..快疯了..!!!

巴库

【问题讨论】:

    标签: windows-services wix


    【解决方案1】:
    1. 您的设置中是否有重复的 GUID?检查组件 guid 是否唯一,并且在两种设置中都没有使用 guid。
    2. 您是否使用ServiceInstall 在卸载时删除服务?

    【讨论】:

    • 在哪里可以找到组件指南?您是在谈论 WIX 升级代码还是项目组装指南?我的升级代码不同,我的服务程序集 guid 也不同..
    • 我正在使用 AddRemove 程序,卸载以删除程序(服务)。
    • @Baku,你想看看 Component/@Guid 属性。此描述听起来像是您在使用组件规则:robmensching.com/blog/posts/2003/10/18/Component-Rules-101
    【解决方案2】:

    以下是我的 WiX 文件中相应部分的外观:

    <ServiceInstall Arguments="CdiTranIdSvc" Account="$(var.SvcUserDomain)\$(var.SvcUserLogin)" Password="$(var.SvcUserPassword)" Id="ServiceInstallTranIdentification" Name="CdiTranIdSvc" Type="ownProcess" Start="auto" ErrorControl="normal" DisplayName="CDI Transactions Identification">
    
    <ServiceControl Id="ServiceControlTranIdentification" Name="CdiTranIdSvc" Start="install" Stop="uninstall" Remove="uninstall">
    

    【讨论】:

      【解决方案3】:

      我知道这是一篇旧帖子,但是当我遇到这个问题时,我最终来到了这里,这对我来说是有用的。

      Plain Old Stan 有一篇关于此的简短博客文章: http://plainoldstan.blogspot.com/2010/11/wix-installing-and-uninstalling-windows.html

      解决了我从注册表中卸载服务的问题。我认为归根结底是 Remove="both"。

      这是节点:

      <ServiceControl Id='ControlStansWinService' Remove='both' Name='StansWinService' 
                              Start='install' Stop='both' Wait='yes' />
      

      您可能需要在重新安装之前清理之前的安装,最好在命令提示符下使用“sc delete [服务名称]”来完成。另外,要小心,但是您可以在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”下的注册表中找到服务

      希望这对某人有所帮助。 WIX 安装程序很棒!

      【讨论】:

        【解决方案4】:

        我以前必须使用 Microsoft Windows Installer CleanUp Utility。 可以找到here.

        【讨论】:

        • 呃,不要使用 MsiZap(或称为“Windows Installer CleanUp Utility”的 UI 包装器)。它不会清理:robmensching.com/blog/posts/2009/3/6/…
        • 您引用的博客似乎与此处的查看方式一致:“...MSIZap 是不得已的工具...”我认为这就是我们在最初讨论的内容问题有“请帮助..发疯..!!!”我的回答是“我不得不使用......”相信我,我已经尝试了其他所有方法,然后 CleanUp Utility 为我工作。即使是 Wiki 也有我同意的“最后一次尝试”。 Wiki 还准确地解释了正在发生的事情。维基可以找到:en.wikipedia.org/wiki/Windows_Installer_CleanUp_Utility
        猜你喜欢
        • 1970-01-01
        • 2011-02-16
        • 1970-01-01
        • 2012-08-13
        • 1970-01-01
        • 2014-01-31
        • 1970-01-01
        • 2019-12-13
        • 2014-06-03
        相关资源
        最近更新 更多