我的安装程序有一个 bootstrap 项目。 bootstrap 安装 .NET、SQLExpress、IIS 和我的应用程序。如果操作系统是 Windows Vista 或更高版本,我想安装 .NET4.5,如果是 XP,我想安装 .NET4.0。

我在 PackageGroupRef 元素中使用了一个简单的 <Chain>,使用了 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 后,它会安装其中一个基于 Windows 版本的 .exes。像这样的东西:
<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 上试用它,但我认为(我希望)它会是正确的。

关于.net - Wix & Burn – PackageGroupRef 条件。是否可以?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24556211/

10-11 14:59