如何在安装后执行Wix自定义操作?

13

我正在使用Wix3将WCF服务安装到IIS中。

安装完成后,如何使用我的自定义操作(c#)函数?例如,我需要打开已安装的web.config文件并用真实的主机名替换。

有什么好的建议吗?

3个回答

11

准确地说,如果他想要排序,那么这个方案是可行的,但是Christopher的答案更适合他实际想要完成的任务。 - Rob McCready

9
在Windows Installer中,有一系列的操作序列。WiX教程有一个很好的部分关于事件(无论如何都是一个很棒的资源)。
一个典型的让某个东西在InstallFinalize之后运行的例子是让已安装的应用程序启动。
<InstallExecuteSequence>
   <Custom Action='LaunchFile' After='InstallFinalize'>NOT Installed</Custom>
</InstallExecuteSequence>

2
如果您的“CustomAction”正在使用“CustomAction”的“ExeCommand”属性来执行脚本命令,则此方法将无法正常工作,并报告编译时错误:“* [插入操作ID名称]是一个脚本内自定义操作。它必须在InstallExecuteSequence表中的InstallInitialize操作和InstallFinalize操作之间排序*”。 - Code Doggo

6

你为什么需要自定义操作?

1)需要自定义操作的原因是什么? 2)为什么要在安装后而不是安装期间执行?

WiX有一个内置扩展来处理您正在尝试执行的操作:

XmlFile元素(Util Extension)

它将在文件安装后更新您的XML,并处理回滚场景。

但是,您还需要编写CA以将XML值读回属性中,以处理修复和升级情况。请阅读:

WiX工具集的“记住属性”模式


请点击此处获取帮助:https://stackoverflow.com/questions/57264361/failed-to-open-xml-file-wix-unable-to-update-appsettings-json - kudlatiger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接