gpt4 book ai didi

Wix 自定义操作仅在卸载时

转载 作者:行者123 更新时间:2023-12-04 14:36:47 24 4
gpt4 key购买 nike

当我使用 Wix 卸载我的服务时,我在让自定义操作仅运行时遇到问题。

<CustomAction Id='InstallService'
FileKey='Service.exe'
ExeCommand='install'
Execute='immediate'
Return='check'
Impersonate='yes'>NOT Installed</CustomAction>

<CustomAction Id='UninstallService'
FileKey='Service.exe'
ExeCommand='uninstall'
Execute='immediate'
Return='check'
Impersonate='yes'>Installed AND NOT REINSTALL</CustomAction>

<InstallExecuteSequence>
<Custom Action='UninstallService' After='StopServices'/>
<Custom Action='InstallService' Before='StartServices'/>
</InstallExecuteSequence>

这是组件...

  <Component Id="ProductComponent">
<File Id="MyService.exe"
Name="MyService.exe"
Source="..\MyService\bin\Release\MyService.exe"
Vital="yes"
KeyPath="yes"
DiskId="1"/>

...

<ServiceControl Id='ServiceControl'
Name='MyService'
Start='install'
Stop='both'/>
</Component>

当我运行安装程序时,出现错误。查看事件日志我发现这个......

产品:MyService -- 错误 1721。此 Windows 安装程序包存在问题。无法运行完成此安装所需的程序。请联系您的支持人员或软件包供应商。操作:UninstallService,位置:C:\Program Files (x86)\MyService\MyService.exe,命令:卸载

我也试过这个...

<CustomAction Id='UninstallService'
FileKey='Service.exe'
ExeCommand='uninstall'
Execute='immediate'
Return='check'
Impersonate='yes'>Installed AND NOT UPGRADINGPRODUCTCODE</CustomAction>

注意:我使用自定义操作来安装/卸载服务,因为我使用了 TopShelf.NET

最佳答案

最好的办法是将自定义操作的操作与组件的操作状态联系起来。

<InstallExecuteSequence>
<Custom Action="UninstallService">$ProductComponent=2</Custom>
<Custom Action="InstallService">$ProductComponent=3</Custom>
</InstallExecuteSequence>

此外,您将需要您的 CustomAction元素要 Execute='deferred' .

另外, CustomAction 中的文本仅当您创建脚本自定义操作时才允许使用元素。这似乎不是你正在做的事情。

添加自定义操作需要相当多的理解。不幸的是,第三方平台会 force you to use custom actions .

关于Wix 自定义操作仅在卸载时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15512814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com