wix bootstrapper

mic*_*mer 1 wix burn wix-extension wix3.6

我使用WPF编写了一个托管的wix bootstrapper.实际安装步骤需要链接多个msi/exe和批处理文件.

<Chain>
 <MsiPackage SourceFile="xxx"/>
 <ExePackage Id="Test" SourceFile="..\TestBatch.bat" Vital="yes"/>
 <MsiPackage SourceFile="yyy"/>
</Chain>
Run Code Online (Sandbox Code Playgroud)

在执行每个包期间,应该显示一条消息(最好来自引导程序UI),指示当前正在执行哪个msi/exe包/批处理文件.简而言之,引导程序中需要一个ProgressText如何实现这一点?

另一个问题:我不希望所有的msi被打包到bootstrapper exe中.这是因为:每次更改msi时,我们只想发送更新/修改的msi,而不是整个bootstrapper exe.有没有办法做到这一点?

Rob*_*ing 6

两个答案,一个建议:

  1. 要在安装MsiPackages期间收回消息,请处理该BootstrapperCore.ExecuteMsiMessage事件.事件参数将包含一个包含您要查找的数据的消息.

  2. 要配置包的压缩方式,请使用该Compress属性.您可以标记整个Bundle/@Compress='no'包或标记每个包Compress='no'(或者'yes'如果您想这样做).

-

建议:确保将DetectCondition添加到ExePackages,以便Burn知道ExePackages是否已经存在.

  • 您的可执行文件可以实现"嵌入式刻录协议"以发送丰富的进度和错误消息.它根本没有记录,所以你需要通过刻录代码来查看协议,但它就在那里,它会让你得到你想要的.WiX源代码中的"bundlerunner".csproj也可能有用. (4认同)