我在我的Bundle.wxs中鏈接了多個Msi/exec包。在我的託管Bootstrapper代碼中,我想獲取正在執行的當前包的參數(如DisplayName,Vital等)。 現在,我只發現了提供packageID的事件。我可以用它來以某種方式訪問軟件包的其他屬性嗎?託管的WiX引導程序包
5
A
回答
7
是的。在構建過程中會創建一個名爲BootstrapperApplicationData.xml
的文件,並將其包含在Bootstrapper應用程序中。 BootstrapperApplicationData.xml
有大量關於Bundle
Chain
中包含的包和包的信息,其中包括DisplayName
和尺寸以及重要信息。
您會在您的.dll旁邊找到BootstrapperApplicationData.xml
。在託管代碼中你可以使用下面的代碼是:
string folder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string dataXmlPath = Path.Combine(folder, "BootstrapperApplicationData.xml");
在本機代碼,它更容易使用的balutil.lib
提供的輔助功能。即BalManifestLoad()
然後BalInfoParseFromXml()
解析XML文件到一堆便利的結構。你可以在src \ ext \ BalExtension \ balutil \ balinfo.cpp中看到代碼。
最後,可以使用CustomTable
元素並設置BootstrapperAppplicationData='yes'
屬性來擴展BootstrapperApplicationData.xml
。
相關問題
- 1. 在Wix託管引導程序中獲取軟件包InstallCondition
- 2. [Wix Bundle託管引導程序]錯誤0x80070002:無法創建託管引導程序應用程序
- 3. wix託管引導程序:Engine.EvaluateCondition()需要單獨的線程?
- 4. WiX的引導程序包執行
- 5. 檢測是否WiX託管引導程序應用程序需要仰角
- 6. 如何在Wix託管的CustomAction程序集中包含GAC'd dll?
- 7. 從託管引導程序WiX修復無法修復一些損壞的DLL
- 8. WiX:如何訪問/更改託管引導程序中的安裝目錄?
- 9. WiX .NET45引導程序
- 10. WiX引導程序UI
- 11. WIX引導程序 - 選定的MSI程序包卸載
- 12. Wix引導程序:引導程序事件的序列
- 13. 簽署引用非託管程序集的託管程序集
- 14. WiX引導程序應用程序
- 15. 如何強制WiX引導程序下載MSI程序包?
- 16. 通過Wix引導程序更新MSI程序包
- 17. 指定燒傷管理引導程序中的WiX包中的INSTALLLOCATION
- 18. 託管引導程序應用程序更新DetectUpdateBegin
- 19. Wix引導程序的「/ layout」選項
- 20. 用於.NET的WiX引導程序4.5
- 21. WiX的引導程序:回滾通知
- 22. 如何在刻錄託管引導程序應用程序中顯示WiX自定義操作的信息
- 23. 燒傷(WiX的引導程序)不卸載MSI軟件包
- 24. WiX的引導程序:卸載包鏈中
- 25. WIX引導程序 - 添加組合框
- 26. 本地化Wix Bundle引導程序
- 27. Wix 3.6引導程序啓動msi
- 28. 遞歸地打開WiX引導程序
- 29. WiX引導程序主題文件?
- 30. 在管理權限中啓動託管引導程序應用程序EXE
這正是我所期待的。再一次感謝你。 – microsoftprogrammer 2013-05-14 04:49:43
我給了C#代碼來解析[這個答案]中的XML(http://stackoverflow.com/a/17548224/628981)。 – 2013-07-09 12:38:52