簡體   English   中英

用於安裝.NET的WiX軟件包

[英]WiX bundle for installing .NET

我正在嘗試創建一個用於安裝.NET Framework 4.0的軟件包,如果需要安裝的話。 我意識到有類似的問題,但所有答案都只是片段,並沒有描述它們進入的文件,以及它們是如何導入.wxs文件的。

這是我在Bundle.wxs文件中的內容。 我收到有關多個輸入部分的編譯器警告。

錯誤2找到多個輸入部分'{CF06625F-7B6B-4B6E-A24E-FDDCA7CFFFF4}'和'{0D1EE60A-FC4F-4083-8B1E-311E75A67B4C}'。 單個目標中可能只存在一個輸入部分。

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Bundle UpgradeCode="{C6FF478E-C3DA-4D78-929D-24C3F3307356}" Version="4.0">
    <Chain>
      <PackageGroupRef Id="NetFx40Redist"/>
    </Chain>
  </Bundle>
</Wix>

WiX頁面上的大多數鏈接都已損壞,並且未提及有關要在Bundle標記上使用的屬性的任何內容,並且似乎要交換包/產品。 我在Wix頁面上找不到關於為Bundles設置GUID的提及。 這是Wix 3.7的新功能嗎?

http://wix.sourceforge.net/manual-wix3/install_dotnet.htm

  1. 如何使用預定義的.NET 4.0 PackageGroupRef / PayloadGroupRef
  2. 它必須在Bundle.wxs中嗎? 它在哪里導入我的主要Product.wxs?

該錯誤表明您的項目正在構建包含多個這些元素的文件: ProductModulePatchPatchCreationBundle 在您的情況下,聽起來您已將具有Bundle元素的文件添加到已具有Product元素的項目中。 今天的WiX工具集不支持這種功能。 您需要將Bundle元素放在一個單獨的項目中。

因此,在創建引導程序和MSI時,您將擁有兩個.wixproj文件。 第一個.wixproj將包含您的Product信息。 第二個.wixproj將包含您的Bundle信息,並具有對第一個.wixproj的項目引用,以便構建順序正確。

Wix/Bundle元素是Bootstrapper項目的根。 它與Product.wxs不在同一個項目中。 在Visual Studio中,有一個用於新Wix Bootstrapper項目的模板。 你可能還沒有創建一個。

然后在您的bundle的Chain中,您將需要.NET和您的應用程序的MSI,如示例中所示。 要使用NetFx40Web,您必須引用WixNetfxExtension。 引用其他Wix項目的Wix項目具有預定義變量,因此您可以使用其屬性(如TargetPath)。 該示例假定此Bootstrapper項目引用了名為MyApplicationSetup的安裝項目。

<Chain>
    <PackageGroupRef Id="NetFx40Web"/>
    <MsiPackage Id="MyApplication" SourceFile="$(var.MyApplicationSetup.TargetPath)"/>
</Chain>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM