该错误表明您的项目正在使用包含多个以下元素的文件进行构建:
Product
、Module
、Patch
、PatchCreation
、Bundle
。在您的情况下,听起来您将一个带有 Bundle
元素的文件添加到了已经具有 Product
元素的项目中。目前的 WiX 工具集不支持这一点。您需要将 Bundle
元素放在单独的项目中。
因此,在创建引导程序和 MSI 时,您将有两个 .wixproj 文件。第一个 .wixproj 将包含您的
Product
信息。第二个 .wixproj 将包含您的 Bundle
信息,并具有对第一个 .wixproj 的项目引用,以便构建顺序正确。
我们也有同样的问题: 错误 WIX0089:找到多个条目部分“”和“”。单个目标中只能存在一个入口部分。
我们只是将产品从wix3切换到wix5。 我们已经毫无问题地更换了一种产品。 现在另一个产品,结构基本相同,也有上面提到的这个错误。
product.wxs 的开头是这样的:
<?include .\Properties.wxi?>
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
<Package ProductCode="$(var.ProductCode)" UpgradeCode="$(var.UpgradeCode)" Name="$(var.ProductName)"
Language="!(loc.strLanguageCode)" Version="$(var.ProductVersion)" Manufacturer="$(var.CompanyName)"
Scope="perMachine" Compressed="$(var.Compressed)" InstallerVersion="300" >
<SummaryInformation Description="$(var.ProductName)" />
Properties.wxi 具有所有定义:
<?define ProductCode = "*" ?>
<?define UpgradeCode = "{DAFFCD3E-DED3-49E5-B805-9F4C86831B61}" ?>
<?define CompanyName = "example company" ?>
<?define AppName = "example product"?>
<?define SetupName = "example stetup name"?>
<?define ProductYear = "2025"?>
<?define ProductName = "$(var.AppName) $(var.ProductYear)"?>
我们在这个项目中没有捆绑包,也没有第二个包或产品。 当我们直接在 Product.wxs 中使用 guid 定义 Product-Code 时,错误消息与错误中的 guid 相同: 错误 WIX0089:找到多个条目部分“{09757972-8D40-4624-AE0E-7F32AB22C186}”和“{09757972-8D40-4624-AE0E-7F32AB22C186}”。单个目标中只能存在一个入口部分。