我在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