WiX Toolset允許創建條件安裝以檢查系統上是否安裝了所有先決條件。問題是這種情況是分開檢查的。我想在一個列表中顯示所有尚未安裝的prerequsities用戶。有什麼辦法可以在WiX中實現這一點?WiX Toolset - 一次檢查所有安裝先決條件(有條件安裝)
3
A
回答
4
在片段或產品元素下使用時,WiX Condition元素表示LaunchCondition Table中的條目,並由LaunchConditions Action處理。您看到的行爲是該基礎功能的限制。
這裏有一個博客文章中,我7年前寫的:
Short Comings of LaunchConditions
可悲的是,微軟從來沒有采取改善我的建議。因此,不必使用Condition元素,您必須編寫自己的自定義表和自定義操作來執行處理。
我在InstallScript和C#中有這樣的示例代碼,但我從來沒有用C/C++編寫過。
以下是InstallScript中的一個簡化示例。將它作爲僞代碼在C/C++中重構。您還需要創建SQL查詢使用的自定義表,定義和計劃自定義操作(我通常會在FindRelatedProducts之後安排它),並創建用於顯示錯誤文本的自定義對話框。所有這些都是未包含的WiX XML。
hDatabase = MsiGetActiveDatabase(hMSI);
MsiDatabaseOpenView(hDatabase, "SELECT `Condition`, `Description` FROM `CustomLaunchConditions` ORDER BY `Ordering`", hView);
MsiViewExecute(hView, 0);
if(MsiViewFetch(hView, hRecord) == ERROR_SUCCESS) then
loop = TRUE;
while(loop)
nvBufferSize = MAX_STRING;
MsiRecordGetString(hRecord, 1, svProperty, nvBufferSize);
if(!MsiEvaluateCondition(hMSI, svProperty)) then
nvBufferSize = MAX_STRING;
MsiRecordGetString(hRecord, 2, svValue, nvBufferSize);
hFormatRecord = MsiCreateRecord(1);
MsiRecordSetString(hFormatRecord, 0, svValue);
nvBufferSize = MAX_STRING;
MsiFormatRecord(hMSI, hFormatRecord, svResult, nvBufferSize);
svWarningMessage = svWarningMessage + svResult + "\r\n";
endif;
if(MsiViewFetch(hView, hRecord) != ERROR_SUCCESS) then
loop = FALSE;
endif;
endwhile;
MsiSetProperty(hMSI, "CustomLaunchConditionsText", svWarningMessage);
endif;
相關問題
- 1. 高級安裝程序:先決條件安裝條件檢查
- 2. WiX:有條件安裝服務,但無條件安裝文件
- 3. Innosetup安裝先決條件
- 4. WiX安裝條件
- 5. 如何檢查WIX 3.6中msi包的先決條件的安裝條件
- 6. 具有先決條件的無提示安裝安裝程序
- 7. 使用Wix進行有條件安裝
- 8. WiX Shell命令有條件安裝
- 9. WIX安裝目錄條件
- 10. 安裝前安裝WiX檢查文件
- 11. Wix Toolset安裝可選組件
- 12. 安裝項目.net 4先決條件
- 13. 本地安裝的Perl先決條件
- 14. 先決條件安裝IBM的InfoSphere BigInsights
- 15. .Net 2.0先決條件安裝程序
- 16. 安裝.netframework作爲先決條件
- 17. Clickonce更新安裝先決條件
- 18. 先決條件驗證和安裝C#
- 19. 如何強制安裝程序檢查是否安裝了先決條件?
- 20. WIX工具集 - 根據用戶輸入安裝先決條件
- 21. WIX安裝程序:添加POS作爲先決條件
- 22. 是否可以在WIX中使用CustomAction安裝先決條件?
- 23. wix - 根據功能安裝先決條件MSI
- 24. 在安裝應用程序之前檢查先決條件
- 25. 如何添加.Net框架先決條件安裝安裝
- 26. Windows安裝程序 - 靜默安裝先決條件
- 27. 如何檢查已安裝或未安裝的Oracle客戶端作爲組件安裝的先決條件
- 28. 我需要安裝我的軟件和先決條件
- 29. 檢查在WiX安裝程序中安裝的.NET?在哪裏放置條件?
- 30. 創建一個程序以先安裝先決條件?
Christpher感謝您的回答。你有沒有可能分享你提到的這段代碼?這對我很有幫助。 –
答覆已更新。 –