繁体   English   中英

WIX安装的程序没有正确卸载

[英]WIX installed program not uninstalling correctly

这是我的情况。

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

A是WindowsService,B是Windows WCF服务

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

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

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

完成之后,第二个要卸载的程序将卸载而不会出现问题。

我首先尝试卸载哪个程序无关紧要,结果是一样的。

我不知道导致卸载过程的依赖项或其他因素无法完全卸载第一个程序。

如果你们有任何想法,请帮助..疯了.. !!!

巴库

我知道这是一个很老的帖子,但是当我遇到这个问题时我就到了这里,这就是我发现对我有用的东西。

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

它解决了我从注册表中卸载服务的问题。 我认为归结为删除=“两者”。

这是节点:

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

您可能需要清理以前的安装,然后才能重新安装,最好在命令提示符下使用“sc delete [service name]”。 另外,请注意,但您可以在“HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Services”下的注册表中找到这些服务。

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

  1. 你在设置中有重复的GUID吗? 检查组件guids是否唯一,并且在两个设置中都没有使用guid。
  2. 您是否使用ServiceInstall删除卸载时的服务?

以下是相应部分在我的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">

我之前不得不使用Microsoft Windows Installer CleanUp Utility。 可以在这里找到

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM