Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
卸载在WIX中创建的安装程序时未删除windows服务_Wix_Wix3.5 - Fatal编程技术网

卸载在WIX中创建的安装程序时未删除windows服务

卸载在WIX中创建的安装程序时未删除windows服务,wix,wix3.5,Wix,Wix3.5,我已经创建了安装windows服务的安装程序,但当我卸载它时,该服务将保持启动状态,而不是删除。我已经在Wix中创建了安装msi <DirectoryRef Id="INSTALLDIR"> <Component Id='MyComponent' Guid='CDBA9BC4-F839-4CAB-8AB0-4397EC079541'> <File Id='LogFWService' Name='LogFWService.exe' Source="$(

我已经创建了安装windows服务的安装程序,但当我卸载它时,该服务将保持启动状态,而不是删除。我已经在Wix中创建了安装msi

 <DirectoryRef Id="INSTALLDIR">
       <Component Id='MyComponent' Guid='CDBA9BC4-F839-4CAB-8AB0-4397EC079541'>
<File Id='LogFWService' Name='LogFWService.exe' Source="$(var.LFShared)\LogFWService.exe" KeyPath="yes" />
 <ServiceInstall Id="InstallLFService" Name="LogFWService" DisplayName="OpenFramework Logging Service" Start="auto" ErrorControl="normal" Description="Captures log events and inserts the log messages into database" Type="ownProcess">
           <ServiceDependency Id="MSMQ" />
 </ServiceInstall>

<ServiceControl Id="sc_InstallLFService" Name="LogFWService" Start="install" Remove="uninstall" Stop="both" Wait="yes"/>
       </Component>
     </DirectoryRef>

即使我使用了“删除文件”属性,但它仍然不会在卸载时删除windows服务。
请帮助任何了解卸载windows服务的人。

我也遇到过类似的问题。我不是100%确定,但我认为它在我更改安装组件的GUID后消失了。以前的GUID是从另一个项目复制粘贴的,以及安装windows服务的整个安装标记,我忘了用新GUID替换它

顺便说一句,您可以使用命令propmt命令sc删除“剩余”服务:


sc delete“YourServiceNameHere”

我在开发环境中测试同一wix安装程序的多个版本时遇到过这种情况。问题是它无法删除实体(组件),因为存在仍然声明的依赖项。这通常是由于一些注册表项是从以前的尝试遗留下来的

搜索以下项并删除相应的(不是全部)键

  • 组件中密钥文件的ID
  • 组件的GUID
  • 目录/文件夹名称(可以包含在\HKLM\MS\Win\CurVer\Installer\Folders中的引用计数中)
  • 密钥文件的名称(也包括引用计数,但不在密钥文件夹中)
出现在名称搜索中的一些键往往位于最近使用的列表或其他位置。当使用标准的regedit时,这可能是一个乏味的过程,因此如果您采用这种方法,建议使用更好的工具


理想情况下,您应该在一台可以恢复到先前状态的机器上测试安装程序。

我遇到了同样的问题,有人能帮我解决这个问题吗?