我正在尝试为 .NET 4.5.2 制作安装包。
我关注了these说明,它适用于该 .NET 版本。
但是当我更改版本时,如下所示,当我第二次运行安装程序时,它没有检测到已安装的 .NET 版本:
<ExePackage Id="Netfx452" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes" InstallCommand="/q /norestart"
SourceFile="$(var.ProjectDir)Resources\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"
DetectCondition="(Netfx4FullVersion="4.5.51209") AND (NOT VersionNT64 OR (Netfx4x64FullVersion="4.5.51209"))"
InstallCondition="(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Netfx4FullVersion="4.5.51209" OR Netfx4x64FullVersion="4.5.51209"))"/>
最佳答案
这仅在 WiX 3.9 中受支持:
包括对 WixNetFxExtension.dll 的引用
在您的 Bundle.wxs 文件中,将以下内容添加到您的
<Bundle><Chain>
元素<PackageGroupRef Id="NetFx452Redist" />
或者,用以下任何一项代替
Id
属性值:PackageGroup ID Description NetFx452Web .Net Framework 4.5.2 web setup. NetFx452Redist .Net Framework 4.5.2 standalone setup.
这是最终标记的一个简短示例:
<Bundle Name="My App" Version="1.0.0.0" Manufacturer="Me" UpgradeCode="{YOUR-GUID-HERE}">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"/>
<Chain>
<PackageGroupRef Id="NetFx452Redist" />
<MsiPackage SourceFile="$(var.AppInstaller.TargetPath)" />
</Chain>
</Bundle>
关于Wix 检测 bundle 中的 .NET 4.5.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25624443/