2017-07-27 44 views
2

我試圖添加.Net 4.7作爲安裝過程的一部分。但是,對於Windows 10,.Net 4.7僅支持Anniversary更新或更高版本。Wix Bundle條件適用於Windows 10週年更新或更新

不幸的是,在刻錄中,沒有內置的屬性可以用來檢查Windows Build。

有沒有什麼方法可以指定安裝程序只有在週年紀念更新或更新版本時纔會執行?

回答

3

您可以使用bal:Condition元素根據條件阻止軟件包的安裝。你可以用一個util:RegistrySearch元素結合這個以搜索存儲的Windows的當前版本的註冊表項:後來

<util:RegistrySearch Id="CurrentBuild" Variable="CBNumber" Result="value" Root="HKLM" Key="SOFTWARE\Microsoft\Windows NT\CurrentVersion" Value="CurrentBuildNumber"/> 

<bal:Condition Message="Windows 10 Anniversary update or later is required."> 
    CBNumber &gt; 14390 
</bal:Condition> 

在這裏,任何Windows 10構建的CBNumber財產比周年紀念版具有版本號,的14393,將允許安裝程序繼續,但任何早期版本將被阻止。您還需要在源文件頂部添加對WiX bal和util擴展的引用:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" 
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 
+0

謝謝。 之間有什麼區別? – ajravago

+0

我不認爲可以引用自定義的RegistrySeach結果。 –

+0

我明白了。實際上,我試圖在之前使用RegistrySearch,但它不起作用。所以我認爲我如何使用RegistrySearch存在問題。無論如何,對於Windows 10的新更新模型,我認爲Wix應該將內部版本編號作爲內置屬性或更易於使用的內容。 – ajravago

相關問題