[英]Wix Burn install .Net 4.5.1 only if installed .Net version is lower and not higher
我們有.Net 4.5.1作為我們軟件套件的先決條件。 在我們編寫Burn時,我們將.net 4.5.1作為最新版本,因此我們不必檢查更高版本的安裝。 現在我們在PC中有4.6.X或更高版本的.Net版本,我們的設置總是在嘗試安裝.Net 4.5.1。 那么,如何檢查是否安裝了更高版本並跳過.Net安裝?
我們不使用網絡安裝。 安裝文件將以.exe格式提供,以供刻錄訪問。 這是當前的創作代碼。
<WixVariable Id="WixMbaPrereqPackageId" Value="Netfx451Full" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="$(var.NetFx40EulaLink)" />
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version"
Variable="Net4FullVersion" />
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version"
Variable="Net4x64FullVersion" Win64="yes" />
<PackageGroup Id="Netfx451Full">
<ExePackage Id="Net45" Name="Microsoft .NET Framework 4.5.1.exe"
Description="Microsoft .NET Framework 4.5.1 AllOS (x86 and x64) Setup"
Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="yes"
InstallCommand="/norestart"
SourceFile="$(var.PreRequisites_x86)DotNetFramework\NDP451-KB2858728-x86-x64-AllOS-ENU.exe"
DetectCondition="(Net4FullVersion = "4.5.50938") AND (NOT VersionNT64 OR (Net4x64FullVersion = "4.5.50938"))"
InstallCondition="(VersionNT >= v6.1 OR VersionNT64 >= v6.1) AND (NOT (Net4FullVersion = "4.5.50938" OR Net4x64FullVersion = "4.5.50938"))" />
</PackageGroup>
您應該使用WixNetFxExtension中提供的功能: http : //wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/install_dotnet.html
還要看一下: 使用Wix Bootstrapper(Burn)安裝可再發行的.NET。
只需添加以下內容(無需任何條件):
<Chain>
<PackageGroupRef Id="NetFx451Redist" />
<MsiPackage SourceFile="$(var.AppInstaller.TargetPath)" />
</Chain>
您確實應該使用內置包 。 如果不是這樣,至少要根據其源代碼來確定條件:
<?define NetFx451MinRelease = 378675 ?>
...
<Fragment>
<util:RegistrySearchRef Id="NETFRAMEWORK45"/>
...
<WixVariable Id="NetFx451WebDetectCondition"
Value="NETFRAMEWORK45 >= $(var.NetFx451MinRelease)"
Overridable="yes" />
...
DetectCondition="!(wix.NetFx451WebDetectCondition)"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.