由于包名称不匹配,MSBuild 不构建解决方案文件

Posted

技术标签:

【中文标题】由于包名称不匹配,MSBuild 不构建解决方案文件【英文标题】:MSBuild does not build solution file because of mismatching package name 【发布时间】:2018-01-13 01:18:51 【问题描述】:

我正在尝试使用 Bamboo 上的 MSBuild 构建一个包含大约 50 个解决方案的大型 UWP 项目。我正面临这个问题,我真的不知道我应该怎么做才能解决它。该项目在 Visual Studio 2017 上成功构建,但在 MSBuild 上失败。 这是我收到的投诉。

 MakeAppx : error : Error info: error 80080204: The package with file name "xxxxxx.ParseTestTool_1.1.5.0_x64.appx" and package full name "fd60938b-922a-40a4-84f3-19300a655ed3_1.1.5.0_x64__1npyqggg1xza8" is not valid in the bundle because it has a different package family name than other packages in the bundle. The expected package name is Nameoftheproject.NameoftheProject. [E:\Win10-Auto-Test2\builds\AV-AWDV-BP\xxxxxx-windows\src\dashboard\xxxxxx.Dashboard\xxxxxx.Dashboard.csproj]
11-Jan-2018 20:22:19      MakeAppx : error : Bundle creation failed. [E:\Win10-Auto-Test2\builds\AV-AWDV-BP\xxxxxx-windows\src\dashboard\xxxxxx.Dashboard\xxxxxx.Dashboard.csproj]
11-Jan-2018 20:22:19      MakeAppx : error : 0x80080204 - The specified package format is not valid: The package manifest is not valid. [E:\Win10-Auto-Test2\builds\AV-AWDV-BP\xxxxxxx-windows\src\dashboard\xxxxxx.yyyyyyyy\xxxxxx.yyyyyyyy.csproj]

那么,为什么解决方案构建不起作用?这里有什么问题?我应该在 MSBuild 命令行或 .cjproj 中修复什么?

【问题讨论】:

【参考方案1】:

错误信息:错误 80080204:具有文件名和包全名的包在捆绑包中无效,因为它的包系列名称与捆绑包中的其他包不同。

根据错误,您似乎将多个 UWP 项目添加到您的解决方案中,然后尝试创建一个包。如果是,您将收到此错误。

要解决此问题,请打开每个项目文件并在第一个 <PropertyGroup> 元素的末尾添加以下属性:

  <PropertyGroup>
    <AppxBundle>Always</AppxBundle>
  </PropertyGroup>

或者

  <PropertyGroup>
    <AppxBundle>Never</AppxBundle>
  </PropertyGroup>

然后,从构建步骤中删除 AppxBundle msbuild 参数。

有关更多详细信息,请参阅Set up automated builds for your UWP app。

希望这会有所帮助。

【讨论】:

以上是关于由于包名称不匹配,MSBuild 不构建解决方案文件的主要内容,如果未能解决你的问题,请参考以下文章

NuGet 自动包还原不适用于 MSBuild

查询对象类型和 MSBuild 14 的模式匹配

由于sgen.exe错误,MSBuild失败

msbuild 不尊重 .sln 文件设置

MSBuild:避免重复构建任何 CPU 项目引用

命令行中的 Msbuild 不输出 Csc 警告和输出