gpt4 book ai didi

.net - MakeAppx 的 Windows 10 UWP 应用程序构建问题

转载 作者:行者123 更新时间:2023-12-03 23:15:10 35 4
gpt4 key购买 nike

我不确定是什么导致了这个错误,我已经研究了几个小时。我正在使用 Visual Studio 2015 更新 3。我正在构建一个将上传到商店的 Windows 10 通用 (UWP) 应用程序。我已经有我的开发中心帐户,它与我的应用程序相关联。最后,当我右键单击项目并选择商店> 创建应用程序包时,我收到此错误:

error 80080204: The package with file name "PacTracMobile.Windows10_1.3.0.0_ARM.appx" and package full name "OdenIndustriesInc.9510B3DEAC6_1.3.0.0_arm__bdbevzbp0ydz4" is not valid in the bundle because the bundle also contains the package with file name "PacTracMobile.Windows10_1.3.0.0_x86.appx" and package full name "OdenIndustriesInc.9510B3DEAC6_1.3.0.0_arm__bdbevzbp0ydz4" which applies to the same processor architecture. Bundles can't contain multiple app packages for the same processor architecture, or an architecture-neutral app package with any architecture-specific app package.



此错误与记录的文件 MakeAppx 有关。我正在尝试构建 x86、x64 和 ARM。当我在调试时,我可以很好地构建、部署和测试,没有错误。但是,当我选择构建我的应用程序包时,我得到了这个。

请注意,Visual Studio 处于 Release模式,任何 CPU。也就是说,当我选择创建应用程序包时,在第一个弹出窗口中,我选择在发布中构建每三个平台。我的屏幕看起来像这样:

Exactly how my build looks, except with my package output path

当我单击创建时,它开始构建,最终出现上述错误。

有什么想法吗?

谢谢!!!

编辑 - 作为记录,我上面显示的屏幕截图是我从 Microsoft 的这些说明中获得的。我已经并且正在完全遵循这些说明! MSDN Building UWP apps

更新 - 如果在上面屏幕截图的窗口中,我取消选择 x84 和 x64(这并不理想,因为我想要所有三个)并且只执行 ARM,我不会收到任何错误并且程序包完成。根据一些阅读,我怀疑如果我一个一个地执行(即,只选择 x86 再次运行),它会构建得很好,但我将剩下三个应用程序包,而不是一个。因此,这似乎与尝试一次构建所有三个并将其打包成一个包有关,这是错误所避免的,但同样,错误或我在网上阅读的任何内容都解释了如何解决该问题。

最佳答案

在对这个问题进行了大量故障排除之后,我不得不让 MS 支持人员解决这个问题。问题的根本原因是以前的架构之一正在构建后一个,因此在构建后一个时,它失败了,因为它已经由前一个构建了。

换句话说,您将在上面的屏幕截图中看到我选中了构建所有三个(x86、x64 和 ARM)的框。我们发现 x86 实际上是在构建 ARM。因此,当 ARM 开始构建时,它抛出错误,因为包已经构建。

现在对于解决方案,MS 支持帮助识别 VS 的错误以及它如何处理您的 .csproj 文件。我们确认在我的情况下以及在新项目中重现的 MS 支持,.csproj 文件可能与配置管理器下 UI 中显示的内容不同步。因此,换句话说,我在 VS 中的配置管理器表明 x86 实际上是针对 x86 的……或者它应该如此。但是,当我们在记事本中打开.csproj文件时,发现x86其实是设置为ARM的。

我们还注意到,重新启动 VS 不会将它们同步备份,也不会将配置管理器物理更改为 ARM,然后再返回到 x86。就好像它不同步然后不再尝试更新它。

因此,唯一的解决方法是手动更正/编辑我的 .csproj 文件以显示正确的架构。一旦我这样做了,一切都很好。

这就是你要在 csproj 文件中寻找的内容

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>true</Prefer32Bit>
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
</PropertyGroup>

请注意,
 <PlatformTarget>x86</PlatformTarget>

匹配配置。之前,即使配置项是针对 x86 的,这也表示 ARM

关于.net - MakeAppx 的 Windows 10 UWP 应用程序构建问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41605000/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com