2014-04-10 52 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

嗨裏克 - 我的意思是不捆綁它。我只是希望它成爲一個需求,但不能將其包含在可由安裝程序安裝的事物鏈中。 –

相關問題