[英]Wix & Burn – PackageGroupRef Condition. Is it possible?
我有一個安裝程序的bootstrapper項目。 引導程序安裝.NET,SQLExpress,IIS和我的應用程序。 如果操作系統是Windows Vista或更高版本,我想安裝.NET4.5,如果是XP,則安裝.NET4.0。
我在<Chain>
元素中使用一個簡單的PackageGroupRef
,使用WixNetFxExtension dll:
<Chain>
<PackageGroupRef Id="NetFx45Web"/>
<PackageGroupRef Id="DotNetInstall"/>
</Chain>
有沒有辦法,將條件插入PackageGroupRef
? 或者我必須編寫自己的.NET安裝程序包?
謝謝!
我想我找到了解決方案。
我創建了兩個Wix Burn項目,一個用於安裝.NET4.5,另一個用於安裝.NET4.0。 像這樣的東西:
<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Bundle Name="Bootstrapper" Version="1.0.0.0" Manufacturer="VilmosNagy" UpgradeCode="844c755f-f02b-4dd3-8b9c-af2498f3128c">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"/>
<Chain>
<PackageGroupRef Id="NetFx40Web"/>
</Chain>
</Bundle>
</Wix>
一個用於.NET4.5。 我將theese編譯為.exe文件。 在我插入原始項目之后,一個Packagegroup
,它安裝了一個theese .exes,基於Windows版本。 像這樣的東西:
<PackageGroup Id="DotNetInstall">
<ExePackage Id="Net45Installer"
Name="Net45Installer.exe"
InstallCommand="-q"
InstallCondition="VersionNT > v6.0"/>
<ExePackage Id="Net40Installer"
Name="Net40Installer.exe"
InstallCommand="-q"
InstallCondition="VersionNT < v6.1"/>
</PackageGroup>
它在XP上安裝.NET4.0。 我正在嘗試Win7,但我認為(我希望)它會是正確的。
在3.9及更早版本中,條件在提供的擴展中得到修復,但是您可以包含來自github 3.9的源代碼或github 3.10 ,其中包含對包ID的一些修改並修改您想要的條件。
在3.10 .. DetectCondition和InstallCondition是可定制的。 github 3.10.2 netfx4.6
<WixVariable Id="NetFx45WebDetectCondition" Value="NETFRAMEWORK45 >= $(var.NetFx45MinRelease)" Overridable="yes" />
<WixVariable Id="NetFx45WebInstallCondition" Value="" Overridable="yes" />
<WixVariable Id="NetFx45WebPackageDirectory" Value="redist\" Overridable="yes" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.