インストール バンドルの前提条件として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 に含まれているはずなのに、自分自身を定義する必要がありました。)
設定を正しくするにはどうすればよいですか?