Wix Burn安装.Net 4.5.1仅当安装的.Net版本较低而不是较高时
我们将.NET4.5.1作为软件套件的先决条件。在我们编写burn的时候,我们有.NET4.5.1作为最新版本,因此我们不必检查更高版本的安装。现在电脑上有了4.6.X或更高版本的.Net,我们的安装程序总是试图安装.Net 4.5.1。那么,如何检查是否安装了更高版本并跳过.Net安装 我们不使用web安装。安装文件将以.exe的形式提供给burn访问。以下是当前的创作代码Wix Burn安装.Net 4.5.1仅当安装的.Net版本较低而不是较高时,.net,installation,wix,burn,.net,Installation,Wix,Burn,我们将.NET4.5.1作为软件套件的先决条件。在我们编写burn的时候,我们有.NET4.5.1作为最新版本,因此我们不必检查更高版本的安装。现在电脑上有了4.6.X或更高版本的.Net,我们的安装程序总是试图安装.Net 4.5.1。那么,如何检查是否安装了更高版本并跳过.Net安装 我们不使用web安装。安装文件将以.exe的形式提供给burn访问。以下是当前的创作代码 <WixVariable Id="WixMbaPrereqPackageId" Value="Netfx451Fu
<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中的功能: 再看看这个: 只需添加以下内容(无需任何条件):
您应该使用WixNetFxExtension中的功能: 再看看这个: 只需添加以下内容(无需任何条件):
您真的应该使用。如果不是,至少应根据以下条件确定:
...
...
...
DetectCondition=“!(wix.NetFx451WebDetectCondition)”
您真的应该使用。如果不是,至少应根据以下条件确定:
...
...
...
DetectCondition=“!(wix.NetFx451WebDetectCondition)”
是的,我知道这一点。但我的问题是我在系统中安装了更高的版本。在这种情况下,我不知道如何更改安装条件。请尝试使用以下值:WIX_IS_NETFRAMEWORK_451_或_LATER_INSTALLED()是的,我知道这一点。但我的问题是我在系统中安装了更高的版本。在这种情况下,我不知道如何更改安装条件。请尝试使用以下值:WIX\u IS\u NETFRAMEWORK\u 451\u或\u LATER\u INSTALLED()
<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)"