我需要在我的安装包中包含 Microsoft .NET 4.5 作为先决条件,并且我希望它尽可能自动化。但是,卸载时不应删除.NET 。我想我已经阅读了有关如何使用DetectCondition
和/或的所有内容InstallCondition
,但我仍然没有正确理解;它要么总是运行 .NET 安装,要么从不运行它。
这是我的最新设置:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:netfx='http://schemas.microsoft.com/wix/NetFxExtension'>
<!-- Define minimum .NET Framework version -->
<?define NetFx45MinRelease = 377811?>
...
<Chain>
<PackageGroupRef Id="Netfx45FullPackage"/>
...
</Chain>
<PackageGroup Id="Netfx45FullPackage">
<ExePackage Id="Netfx45Full" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes"
SourceFile="..\..\..\..\Environment\InstallerResources\Prerequisites\dotnetfx45_full_x86_x64.exe"
InstallCommand="/passive /norestart"
DetectCondition="NETFRAMEWORK45 >= $(var.NetFx45MinRelease)"
InstallCondition="NOT REMOVE AND (NETFRAMEWORK45 < $(var.NetFx45MinRelease))" />
</PackageGroup>
(出于某种原因,我必须定义NetFx45MinRelease
自己,即使它应该包含在 WixNetFxExtension 中。)
我怎样才能得到正确的设置?