olduğunu. DetectConditions ve InstallConditions kullanımı not alın. DetectCondition, belirli paketin yüklü olup olmadığını kontrol eder, ancak InstallCondition, paketin ne zaman yükleneceğini belirlemek için DetectCondition'ı geçersiz kılmak için kullanılabilir. Örneğin, XP'de .NET 4.5'i yükleyemezsiniz, bu yüzden InstallCondition'ım böyle bir durumda yüklemeyi engeller. , Belirli soruların ilgili olarak
<Chain>
<PackageGroupRef Id='Netfx45'/>
</Chain>
Başvuru karşı test edilmiştir neyse çerçeve sürümü yüklemek olacaktır: O zaman sadece zincirinde ona başvuru, paketlerinden birini yüklemek istiyorsanız
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4FullVersion" />
<util:RegistrySearch Root="HKLM" Key="SOFTWARE\Microsoft\Net Framework Setup\NDP\v4\Full" Value="Version" Variable="Netfx4x64FullVersion" Win64="yes" />
<!-- .NET 4.5 only installed if Vista or higher AND it's not already installed-->
<PackageGroup Id="Netfx45">
<ExePackage Id="Netfx45" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes" InstallCommand="/q"
SourceFile="C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX45Full\dotnetfx45_full_x86_x64.exe"
DetectCondition="(Netfx4FullVersion="4.5.50709") AND (NOT VersionNT64 OR (Netfx4x64FullVersion="4.5.50709"))"
InstallCondition="(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Netfx4FullVersion="4.5.50709" OR Netfx4x64FullVersion="4.5.50709"))"/>
</PackageGroup>
<!-- .NET 4.0 only installed if XP AND it's not already installed -->
<PackageGroup Id="Netfx4Full">
<ExePackage Id="Netfx4Full" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes" InstallCommand="/q"
SourceFile="C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX40\dotNetFx40_Full_x86_x64.exe"
DetectCondition="Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)"
InstallCondition="(VersionNT < v6.0 OR VersionNT64 < v6.0) AND (NOT (Netfx4FullVersion OR Netfx4x64FullVersion))"/>
</PackageGroup>
. Hem .NET 4.0 hem de .NET 4.5'e karşı test edildiyse, bu bir yargı çağrısıdır, ancak kurulum deneyimini olabildiğince basitleştirmeye çalışacağım. Böylece, .NET 4.0 zaten yüklenmiş ve uygulama .NET 4.5 gerektirmiyorsa, bunu yüklemezdim.
Ayrıca, Özel Yönetilen Önyükleyici Uygulaması kullanıyorsanız, Seçenek 2'de bir dezavantaj vardır. .NET 4.0 yüklü olduğunu ve yönetilen önyükleyicinizin .NET 4.0 (veya daha büyük) gerektirdiğini varsayalım. Yükleyiciyi çalıştırdığınızda, .NET 4.0'ın yerini alan .NET 4.5'i yükler ve yükleyicinizin güncellemeye devam ederken .NET framework'ü kullandığından dolayı yeniden başlatılmasını zorlar.Yine, kendi özel yönetilen bootstrapper'ınızı kullanıyorsanız bu sadece bir sorundur. Benim durumumda
, ben WixNetfxExtension en ** NetFx45Web ** paket grubu üzerinden web yükleyici kullanmak istiyorum. Soruyu buna göre güncelledim. Yerleşik bir paket grubuyla çalışırken ** InstallCondition ** 'a eşdeğer var mı? –
InstallConditions kendileri (ExePackage, MsiPackage) paketleri üzerinde bulunmaktadır. Ayrıca, mevcut WiX kılavuzu yüklü olup olmadığını öğrenmek için .NET 4.5 özelliklerini listelemez. Bence bu sınırlamalar kurulumum için NetfxExtension kullanmadım. Eğer NetfxExtension kullanarak .NET 4.5 yüklemek istiyorsanız IMO, muhtemelen sadece NetFx45Web paket grubu eklemek, daha sonra sadece Vista veya daha yüksek çalıştırmak için yükleme sırasında bir koşul koydu. Daha sonra bir XP yüklemesine ihtiyacınız varsa, ayrı bir yükleyici oluşturmak için ayrı bir proje veya yapılandırma oluşturun. – BryanJ
web yapmak için değil çok zor bir yolu var mı NetfxExtension olmadan .NET yükler? –