Мне нужно включить Microsoft .NET 4.5 как необходимое условие с моим установочным комплектом, и я хочу, чтобы он был максимально автоматическим. Однако .NET не должен удаляться при unistalling. Я думаю, что я прочитал все о том, как использовать 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.)
Как правильно настроить параметры?