Den*_*nis 5 installation windows-installer wix
在安装过程中,我需要在自定义操作中添加一些额外的文件,这些文件在 InstallExecuteSequence 标记中配置为 After="InstallFinalize"。
使用文件后,我希望删除文件(和目录)。
我怎样才能做到这一点?
我的 InstallExecuteSequence 看起来像这样:
<InstallExecuteSequence>
<Custom Action="UNINSTALLSERVICE"
After="InstallInitialize">REMOVE="ALL"</Custom>
<Custom Action="CLEANUP"
Before="RemoveFiles">REMOVE="ALL"</Custom>
<Custom Action="INSTALLSERVICE"
After="InstallFinalize" />
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)
如果我创建一个自定义操作
ExeCommand="cmd /C RD "somedir" /s /q"
Run Code Online (Sandbox Code Playgroud)
并将其添加到序列中,如下所示:
<Custom Action="CLEANTEMP" After="InstallFinalize" />
Run Code Online (Sandbox Code Playgroud)
我收到构建错误:
Error 596 ICE77: CLEANCONFIG is a in-script custom action.
It must be sequenced in between the InstallInitialize action
and the InstallFinalize action in the InstallExecuteSequence table
Run Code Online (Sandbox Code Playgroud)
更新:不知道为什么这刚刚被否决。下面的总结是合理的建议。也许是缺少样本?我将添加几个链接。另外:在某些情况下,可能需要自定义操作来调整服务安装,但如果您正确设计服务,则很少需要这样做 - WiX 还具有帮助您进行常见调整的结构:
- Phil Wilson书中的示例(更多其他主题的示例): https://github.com/Apress/def-guide-to-win-installer/tree/master/Chapter10。
- Phil Wilson再次展示了他的使用 Visual Studio 安装服务示例。
- Chris Painter和他的 IsWiX 教程:https://github.com/iswix-llc/iswix-tutorials。
通常不需要使用自定义操作来安装和配置服务。由于其完整的回滚支持和广泛的功能集,内置的 MSI 功能非常优越。使用自定义操作会使事情变得非常复杂,增加不必要的风险,并且在回滚过程中几乎总是会失败,使系统处于无效状态。
MSI 表有一个学习曲线 - 有很多选项,但根据我的经验,只有少数设置组合在一起才有意义。通常在安装过程中停止和重新启动,在卸载及其变体过程中停止和删除。过去,我添加了自定义操作只是为了等待服务正确关闭,但这只是等待自定义操作,不会更改系统。可能有我不知道的针对这种情况的新 Wix 功能。
MSI 表ServiceInstall和ServiceControl用于安装服务。在 Wix 中,您处理等效的 XML 元素:Wix ServiceInstall和Wix ServiceControl以及较新的Wix ServiceConfig和Wix ServiceConfigFailureActions。
归档时间: |
|
查看次数: |
5611 次 |
最近记录: |