我写了一个使用WPF管理的wix引导程序。实际的安装步骤需要链接多个msi的/ exe文件和批处理文件。wix bootstrapper
<Chain>
<MsiPackage SourceFile="xxx"/>
<ExePackage Id="Test" SourceFile="..\TestBatch.bat" Vital="yes"/>
<MsiPackage SourceFile="yyy"/>
</Chain>
每个包的执行过程中,应显示的消息(优选地从引导程序UI)指示正当前执行MSI/EXE包/批处理文件。 简而言之,引导程序中需要一个ProgressText我该如何做到这一点?
另一个问题:我不希望所有的msi被打包到bootstrapper exe中。这是因为:每次更改msi时,我们只想发布更新/修改的msi,而不是整个引导程序exe。有没有办法做到这一点?
谢谢Rob。上述两个建议都很好地满足了我的目的。我想知道是否可以将我的ExecPackage消息传递回引导程序?情况是这样的:我有一些批处理文件需要执行,而我正在使用ExecPackage来完成这个任务。根据批处理中的一些结果,我想显示一条适当的消息给用户,并提供选项以继续/终止/重新启动等。 – microsoftprogrammer 2013-03-07 11:56:14
继续我上面的评论...我想,我可能会将邮件另存为注册表项并在ExecutePackageComplete事件中检索它。有没有其他方法可以做到这一点? – microsoftprogrammer 2013-03-08 07:48:45
您的可执行文件可以实现“嵌入式刻录协议”以发送丰富的进度和错误消息。它根本没有记录,所以你需要通过Burn代码来查看协议,但它在那里,并会准确得到你想要的。 WiX源代码中的“bundlerunner”.csproj可能也有帮助。 – 2013-03-08 08:52:13