Wix 刻录:访问Bootstrapper.exe中的msi文件

Wix 刻录:访问Bootstrapper.exe中的msi文件,wix,bootstrapper,burn,Wix,Bootstrapper,Burn,问题:我们可以在安装时访问Burn Bootstrapper打包的msi文件(和其他安装程序)吗 假设我们需要阅读一些属性,或者在开始安装之前应用mst等等 可能吗?是否尝试将转换作为有效负载添加到MsiPackage元素,并使用MsiProperty元素设置TRANSFORMS属性 <MsiPackage ...> <Payload Compressed="yes" SourceFile="c:\mytransform.mst"/> <MsiPro

问题:我们可以在安装时访问Burn Bootstrapper打包的msi文件(和其他安装程序)吗

假设我们需要阅读一些属性,或者在开始安装之前应用mst等等


可能吗?

是否尝试将转换作为有效负载添加到MsiPackage元素,并使用MsiProperty元素设置TRANSFORMS属性

<MsiPackage ...>
    <Payload Compressed="yes" SourceFile="c:\mytransform.mst"/>
    <MsiProperty Name="TRANSFORMS" Value="mytransform.mst" />
</MsiPackage>

如果您确实需要获取嵌入有效负载的路径,并且使用标准引导程序,则需要创建bafunctions.dll并进行一些C/C++编码

要创建bafunctions.dll,首先下载wix源代码,并以项目src\burn\samples\bafunctions为例。要使用已编译的bafunctions.dll,请将其作为有效负载添加到引导程序

<BootstrapperApplicationRef ...>
    <Payload Compressed="yes" SourceFile="c:\bafunctions.dll" />
</BootstrapperApplicationRef>

这足以让标准引导程序调用bafunctions.dll回调。您有针对OnDetect()、OnDetectComplete()、OnPlan()和OnPlanComplete()的回调。您可以使用这些函数进行一些非平凡的检测,并获取/设置burn变量

这篇文章有一个关于如何在运行时使用bafunctions.dll获取嵌入负载路径的示例: