WiX引导程序禁用.NET Framework安装链

时间:2014-04-10 14:22:07

标签: wix

在我的WiX安装程序中,如果未安装.NET,我不希望自动安装.NET。它应该只发出警告或仅发出错误。

避免它的原因是explained here

  

一个巨大的词   这里要小心:因为.Net安装程序在技术上是其中的一部分   您的安装链,如果用户安装.Net但是取消您的   安装,您的安装程序仍将在添加/删除中列出   程序,因为它的组件(.Net安装程序)完成了。   谨慎行事。

他似乎故意包括它。但我不是,我碰巧设置了<supportedRuntime version="v4.5" />,我猜这不是真正的版本(4.5 =&gt; 4.0就此而言?)。我的WiX托管引导程序应用程序exe自动提示我下载并安装“缺少的”.NET Framework。

对于缺少4.0的计算机,我不希望发生这种情况。如果我遗漏,WiX也会抱怨:

<WixVariable Id="WixMbaPrereqLicenseUrl" Value="..." />
<WixVariable Id="WixMbaPrereqPackageId" Value="..." />

其中我真的留在...因为我不想让它继续工作。

In this thread,@ Sharhrhi问

  

有没有办法替换先决条件.Net安装UI,只需通知用户他们需要安装特定版本的.Net才能安装捆绑包?

Rob Mensching回复:

  

是的,现在可以。

......但他没有做好准备。现在可以如何

谢谢!

===============

在我的Bundle的Bootstrap.Config中:

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v6" />  <!-- Pretending it's the future! -->
</startup>

WiX bootstrap stub window?

Bundle本身不引用任何.NET内容,也不引用WixNetFxExtension并使用自定义<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost" />

1 个答案:

答案 0 :(得分:0)

要回答如何处理.Net 4.0 Framework的检查,请在项目中包含WixNetfxExtension

然后在产品下添加对属性NETFRAMEWORK40FULL的引用并在其上添加条件。

<PropertyRef Id="NETFRAMEWORK40FULL"/>
<Condition Message="This application requires .NET Framework 4.0. Please install the .NET Framework then run this installer again.">
  <![CDATA[Installed OR NETFRAMEWORK40FULL]]>
</Condition>

对于链接的情况再次包括wixnetfxextension并包含NetFx40Redist包组

<PackageGroupRef Id="NetFx40Redist"/>