管理WiX的引导程序包(Managed WiX Bootstrapper packages)

2019-09-02 03:22发布

我在Bundle.wxs链多个MSI / EXEC包。 在我的管理引导程序的代码,我想获得正在执行当前包的参数(如显示名称,命门等)。 现在,我只发现提供包标识事件。 我可以用这个莫名其妙地访问包的其他属性?

Answer 1:

是。 所谓的文件BootstrapperApplicationData.xml在构建过程中创建并包含在你的引导器应用。 该BootstrapperApplicationData.xml有很多有关包含在捆绑和包装信息Bundle Chain ,包括DisplayName和大小和重要。

你会找到BootstrapperApplicationData.xml旁边您的.dll。 在托管代码中你可以使用下面的代码是:

 string folder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
 string dataXmlPath = Path.Combine(folder, "BootstrapperApplicationData.xml");

在本机代码,它更容易使用所提供的辅助功能balutil.lib 。 即BalManifestLoad()然后BalInfoParseFromXml()到XML文件解析成一束方便结构体。 你可以看到的src \分机\ BalExtension \ balutil代码\ balinfo.cpp。

最后, BootstrapperApplicationData.xml可以通过使用扩展CustomTable元件和设置BootstrapperAppplicationData='yes'属性。



文章来源: Managed WiX Bootstrapper packages
标签: wix