2014-04-10 55 views
0

在我的WiX安装程序中,如果未安装.NET,我不希望.NET自动安装。它应该只是发出警告或者仅仅是出错。WiX引导程序禁用.NET Framework安装链接

的理由,以避免它是explained here

这里 谨慎的一个大词:因为.NET安装程序会在技术上是 部分的安装链,如果用户安装的.Net但随后取消您的安装程序 ,安装程序仍将列在“添加/删除程序” 程序中,因为如果它的组件(.Net安装程序)完成,那么该程序就会被列出。 谨慎行事。

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

对于缺少4.0的计算机,我不希望发生这种情况。

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

中,我从字面上...离开,因为我不希望它反正工作:如果我离开了维克斯也抱怨。

In this thread,@Shruthi问

有没有办法来取代前提.NET中只是一个通知,他们需要安装.Net的特定版本,他们可以在安装前用户安装UI束?

和Rob Mensching回复:

是的,现在是可能的。

......但他没有完全阐明。 如何现在可以吗?

谢谢!

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

在我的包的Bootstrap.Config:

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

WiX bootstrap stub window?

的包本身不引用任何。 NET的东西,并没有参考WixNetFxExtension并使用自定义<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost" />

回答

0

要回答如何处理.Net 4.0框架检查包括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"/> 
+0

谢谢,我有在MSI的项目,但是这是一件对我来说似乎是发生的部分捆绑的逻辑。你认为那是错的吗? –

+0

哦,所以你把你的MSI与.Net框架捆绑在一起?如果是这种情况,请使用链中WixNetfxExtenion的NetFx40Redist。 –

+0

嗨里克 - 我的意思是不捆绑它。我只是希望它成为一个需求,但不能将其包含在可由安装程序安装的事物链中。 –

相关问题