wix引导程序 [英] wix bootstrapper
问题描述
我使用 WPF 编写了一个托管 wix 引导程序.实际的安装步骤需要链接多个 msi/exe 和批处理文件.
I have written a managed wix bootstrapper using WPF. The actual installation steps requires chaining of multiple msi's/exe's and batch files.
<Chain>
<MsiPackage SourceFile="xxx"/>
<ExePackage Id="Test" SourceFile="..\TestBatch.bat" Vital="yes"/>
<MsiPackage SourceFile="yyy"/>
</Chain>
在每个包的执行过程中,应显示一条消息(最好来自引导程序 UI),指示当前正在执行哪个 msi/exe 包/批处理文件.简而言之,引导程序中需要一个 ProgressText 我怎样才能做到这一点?
During the execution of each package, a message should be displayed (preferably from the bootstrapper UI) indicating which msi/exe package/ batch file is being executed currently. In short, a ProgressText is needed in the bootstrapper How can I make this happen?
另一个问题:我不希望所有 msi 都打包到引导程序 exe 中.这是因为:每次更改 msi 时,我们只想发送更新/修改的 msi 而不是整个引导程序 exe.有没有办法做到这一点?
Another question: I do not want all the msi's to be packaged into the bootstrapper exe. This is because: Each time an msi is changed we would like to ship only the updated/modified msi and not the entire bootstrapper exe. Is there a way to do this?
推荐答案
两个答案,一个建议:
要在安装 MsiPackages 期间取回消息,请处理
BootstrapperCore.ExecuteMsiMessage
事件.那里的事件参数将包含一条消息,其中包含您要查找的数据.
To get messages back during the MsiPackages being installed, handle the
BootstrapperCore.ExecuteMsiMessage
event. The event args there will contain a Message that contains the data you are looking for.
要配置包的压缩方式或不压缩方式,请使用 Compress
属性.您可以标记整个 Bundle/@Compress='no'
或标记每个包 Compress='no'
(或 'yes'
,如果你想走那条路).
To configure how the packages are compressed or not, use the Compress
attribute. You can either mark the entire Bundle/@Compress='no'
or mark each package Compress='no'
(or 'yes'
if you want to go that way).
--
建议:务必将 DetectCondition 添加到 ExePackages,以便 Burn 知道 ExePackages 是否已经存在.
Suggestion: Be sure to add DetectCondition to the ExePackages so Burn will know if the ExePackages are already present or not.
这篇关于wix引导程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!