WiX EmbeddedChainer无法卸载

3

有人问了一个非常类似的问题,但回答并不是很有帮助。如果有一个知识渊博的答案,那将非常有价值...

我使用Windows Installer 4.5创建了一个WiX项目。在wxs文件中包含了EmbeddedChainer元素引用,用于MsiEmbeddedChainer表的多包安装。

<EmbeddedChainer Id="Chainer" FileSource="InstallMSI.exe" />

我在网上搜索了一圈,最终找到一篇文章,介绍了如何获取内部事务的句柄。现在,我的安装程序可以正确地调用可执行文件以处理链接的MSI文件。但是,卸载功能无法正常工作。请注意,如果没有上述的EmbeddedChainer元素,则卸载功能正常。

我已经阅读了所有可用的文档,但没有找到一个示例项目。

有人能提供一些关于创建基于WiX的多个MSI安装���的指导吗?


你可以给我们更多的细节吗?卸载过程中出现了哪些问题? - rmrrm
2个回答

1

真的吗?那么,有什么例子吗? - user713836
我在Windows SDK中快速查找了一下,但很抱歉没有找到任何东西 :( - saschabeaumont

1

卸载时将再次调用相同的嵌入式chainer可执行文件Main()。为了使chainer代码能够检测到是安装还是卸载,父安装程序应将参数传递给chainer Main函数。在卸载时,父安装程序具有属性[REMOVE],其设置为"REMOVE=ALL"或"REMOVE=feature1,feature2"。将EmbededChainer/@CommandLine设置为"REMOVE=[REMOVE]",并在chainer代码的Main中解析参数列表并将数据作为参数传递给MsiInstallProduct()。当MsiInstallProduct()看到参数"REMOVE=ALL"时,子MSI将执行卸载。


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