[英]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
該錯誤表明您的項目正在構建包含多個這些元素的文件: Product
, Module
, Patch
, PatchCreation
, Bundle
。 在您的情況下,聽起來您已將具有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.