簡體   English   中英

Wix&Burn - PackageGroupRef條件。 可能嗎?

[英]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 &gt; v6.0"/>
  <ExePackage Id="Net40Installer"
              Name="Net40Installer.exe"
              InstallCommand="-q"
              InstallCondition="VersionNT &lt; 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 &gt;= $(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM