如何在Wix Bootstrapper中使用NetFx40Web传递安装命令

时间:2013-12-30 20:15:11

标签: wix bootstrapper

我有一个工作的Wix(BURN)bootsrapper应用程序。链接我的MSI之前的部分先决条件是安装.NET 4.0 Full(如果尚未安装)。我链中的第一项是: <PackageGroupRef Id="NetFx40Web"/>

就像我说的一切正常,但是因为下载和安装完成可能需要几分钟,并且默认进度条不是很具描述性,我想用选项/ passive / norestart启动.Net安装程序/ q / norestart。

有谁知道如何覆盖NetFx40Web的默认InstallCommand属性?我不想做可再发行的,如果我可以避免它(大多数计算机已经有我的应用程序正在安装的.Net 4.0),但测试我这样做并且能够使其成为被动。

感谢。

1 个答案:

答案 0 :(得分:3)

只需复制NetFx40Web PackageGroup的source,而不是引用它。更改ID以确保您不会发生碰撞

<?define NetFx40EulaLink =  http://go.microsoft.com/fwlink/?LinkID=188993 ?>
<util:RegistrySearchRef Id="NETFRAMEWORK40"/>

<WixVariable Id="WixMbaPrereqPackageId" Value="NetFx40Web" />
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="$(var.NetFx40EulaLink)" />

<PackageGroup Id="PassiveNetFx40Web">
  <ExePackage
      InstallCommand="/passive /norestart /ChainingPackage &quot;[WixBundleName]&quot;"
      RepairCommand="/passive /norestart /repair /ChainingPackage &quot;[WixBundleName]&quot;"
      UninstallCommand="/uninstall /passive /norestart /ChainingPackage &quot;[WixBundleName]&quot;"
      PerMachine="yes"
      DetectCondition="NETFRAMEWORK40"
      Id="NetFx40Web"
      Vital="yes"
      Permanent="yes"
      Protocol="netfx4"
      DownloadUrl="$(var.NetFx40WebLink)"
      Compressed="no"
      Name="redist\dotNetFx40_Full_setup.exe">
    <RemotePayload
        Size="889416"
        Version="4.0.30319.1"
        ProductName="Microsoft .NET Framework 4"
        Description="Microsoft .NET Framework 4 Setup"
        CertificatePublicKey="672605E36DD71EC6B8325B91C5FE6971390CB6B6"
        CertificateThumbprint="9617094A1CFB59AE7C1F7DFDB6739E4E7C40508F"
        Hash="06BECADB92A5FCCA2529C0B93687C2A0C6D0D610"/>
  </ExePackage>
</PackageGroup>