首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >WPF 打包为 UWP 应用构建失败 MSB3270 不匹配 AMD64 架构

WPF 打包为 UWP 应用构建失败 MSB3270 不匹配 AMD64 架构

作者头像
林德熙
发布于 2020-03-23 08:43:02
发布于 2020-03-23 08:43:02
2.3K00
代码可运行
举报
文章被收录于专栏:林德熙的博客林德熙的博客
运行总次数:0
代码可运行

在使用 dotnet core 3.1 的 WPF 打包为 UWP 应用的时候,如果没有设置 PublishProfiles 那么将会在构建 x64 提示所生成项目的处理器架构“AMD64”与引用的处理器架构“x86”不匹配

在我使用下面命令打包的时候,如果我将 Platform 设置为 x86 那么什么问题都没有,如果我设置为 x64 就会发现构建失败,请看 https://github.com/dotnet-campus/TranslationTool/runs/504702520?check_suite_focus=true

代码语言:javascript
代码运行次数:0
运行
复制
msbuild TranslationTool.sln /p:Platform=x64 /p:Configuration=Debug /p:UapAppxPackageBuildMode=StoreOnly /p:AppxBundle=Never /p:PackageCertificateKeyFile=TranslationTool.Package_TemporaryKey.pfx /p:PackageCertificatePassword="123"

可以看到的英文提示如下

代码语言:javascript
代码运行次数:0
运行
复制
(ResolveAssemblyReferences target) ->   
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): error MSB3270: There was a mismatch between the processor architecture of the project being built "AMD64" and the processor architecture of the reference "D:\a\TranslationTool\TranslationTool\Code\TranslationTool.WPF\bin\x86\Debug\netcoreapp3.1\win-x86\TranslationTool.WPF.dll", "x86". This mismatch may cause runtime failures. Please consider changing the targeted processor architecture of your project through the Configuration Manager so as to align the processor architectures between your project and references, or take a dependency on references with a processor architecture that matches the targeted processor architecture of your project. [D:\a\TranslationTool\TranslationTool\Code\TranslationTool.Package\TranslationTool.Package.wapproj]

中文提示如下

代码语言:javascript
代码运行次数:0
运行
复制
(ResolveAssemblyReferences 目标) ->
  C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.ta
rgets(2106,5): error MSB3270: 所生成项目的处理器架构“AMD64”与引用“D:\lindexi\TranslationTool\Code\TranslationTool.WPF\bin
\x86\Debug\netcoreapp3.1\win-x86\TranslationTool.WPF.dll”的处理器架构“x86”不匹配。这种不匹配可能会导致运行时失败。请 考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目
与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。

解决方法是添加 PublishProfiles 文件,请看 dotnet-campus/TranslationTool@1650f7a

原因是在使用 .NET Core 3.1 的桌面应用需要修改使用独立发布,也需要指定不同的文件夹

除了在 WPF 项目添加 PublishProfiles 文件,还需要在打包项目添加代码

代码语言:javascript
代码运行次数:0
运行
复制
    <ProjectReference Include="..\lindexi\林德熙博客.csproj">
      <SkipGetTargetFrameworkProperties>True</SkipGetTargetFrameworkProperties>
      <TrustLevel>Full</TrustLevel>
      <PublishProfile Condition="'$(Configuration)|$(Platform)'=='Release|x86'">Properties\PublishProfiles\SelfContainedWin86.pubxml</PublishProfile>
      <PublishProfile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Properties\PublishProfiles\SelfContainedWin64.pubxml</PublishProfile>
      <PublishProfile Condition="'$(Configuration)|$(Platform)'=='Debug|x86'">Properties\PublishProfiles\SelfContainedWin86Debug.pubxml</PublishProfile>
      <PublishProfile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Properties\PublishProfiles\SelfContainedWin64Debug.pubxml</PublishProfile>
    </ProjectReference>

如果使用 msbuild 命令行打包桌面应用为 UWP 应用请看

使用 msbuild 命令行编译 UWP 程序

如何使用 Github 的自动构建请看

Continuous integration and deployment for desktop apps with GitHub Actions

microsoft/github-actions-for-desktop-apps: This repo contains a sample WPF application to demonstrate how to create CI/CD pipelines using GitHub Actions.

如何在 VS 打包请看

UWP 打包 win32 应用 添加防火墙例外

本文链接的是 Github Action 是在 Github 上自动构建的服务,可以用来持续集成,可以用来做 NuGet 包

dotnet 部署 github 的 Action 进行持续集成


本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF-%E6%89%93%E5%8C%85%E4%B8%BA-UWP-%E5%BA%94%E7%94%A8%E6%9E%84%E5%BB%BA%E5%A4%B1%E8%B4%A5-MSB3270-%E4%B8%8D%E5%8C%B9%E9%85%8D-AMD64-%E6%9E%B6%E6%9E%84.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
MSBuild 常用参数
如果在文件夹里面存在多个不同的 sln 文件等,在 msbuild 后面添加对应的文件
林德熙
2019/12/12
2.2K0
dotnet core 发布只有一个 exe 的方法
在 dotnet core 发布的时候,会使用很多文件,这样发给小伙伴使用的时候不是很清真,本文告诉大家一个非官方的方法通过 warp 将多个文件打包为一个文件
林德熙
2019/03/13
1.4K0
dotnet core 发布只有一个 exe 的方法
dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
在 2022 时,我写了一个提案,允许应用程序自定义使用的 dotnet 运行时文件夹路径。详细请看 https://github.com/dotnet/runtime/issues/64430
郑子铭
2025/07/20
950
dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
进行框架依赖发布的时候,应用程序需要有 dotnet runtime 运行时才能跑起来。在 dotnet 9 之前,通常都是需要安装到系统的 Program File 文件夹下的全局 dotnet 运行时的支持。在 dotnet 9 时,引入了 AppHostRelativeDotNet 机制,允许开发者自定义依赖框架发布的应用使用的 dotnet 运行时路径
林德熙
2025/07/04
1040
WPF 使用 Microsoft.Toolkit.Wpf.UI.Controls 的 InkCanvas 做高性能笔迹应用
本文告诉大家如何在 WPF 中应用上 UWP 的笔迹控件,从而实现性能超级高的笔迹应用的方法
林德熙
2021/12/23
1.4K0
VisualStudio 外部工具配合 dotnet tool 制作复制文件名工具
我在 VisualStudio 中,为了方便沟通,我需要复制当前文件的文件名,不包含本地的路径,但是我没有找到一个好的复制方式,每次都是复制完全的路径,然后再删除部分的功能。为了提高效率,于是我就自己使用 .NET Core 制作了一个 dotnet 工具,让 VisualStudio 的自定义外部工具配合 dotnet tool 加上传入参数实现通过按下快捷键即可复制当前标签页对应的文件名。实现在 VisualStudio 中按下某个快捷键即可复制当前打开的文件的文件名到剪贴板的功能
林德熙
2021/04/01
7820
VisualStudio 外部工具配合 dotnet tool 制作复制文件名工具
VisualStudio 如何在 NuGet 包里面同时包含 DEBUG 和 RELEASE 的库
我在开发的时候需要使用到一些 DEBUG 库进行调试,但是我的库是通过 NuGet 给用户的,如果在 NuGet 里面使用到了 DEBUG 的库那么会让代码的运行效率降低。于是我就找到一个方法,可以在 NuGet 同时打包调试和发布的包,这样在用户调试的时候就可以使用调试的代码
林德熙
2019/04/22
2.2K0
VisualStudio 如何在 NuGet 包里面同时包含 DEBUG 和 RELEASE 的库
GitHub Action 新上线 WPF .NET Core 自动构建模板
在很土豪的微软免费给大家提供 GitHub 的构建服务器受到了小伙伴们的一堆好评之后,微软最近推出了 WPF 的 .NET Core 版本的模板,可以快速上手 WPF 项目的自动构建,支持自动进行单元测试和打包,同时输出打包的文件
林德熙
2020/05/09
6490
GitHub Action 新上线 WPF .NET Core 自动构建模板
WPF 框架开发 更改 API 之后让 CI 重新创建 API 兼容检查基准
本文是记录在开发 WPF 框架遇到的问题。 在 WPF 框架里面,限制了 API 的变更,所有关于 API 的变动都会触发 API 兼容检查。只有在明确此 API 变更是合理的之后,才能被接受更改。而此兼容判断将会让一些本地构建失败,本文将告诉大家如何使用官方的方法重新创建 API 基准,让本地构建通过
林德熙
2021/01/14
5730
dotnet WinUI3 Win2D 翻转图片
本文将告诉大家如何在 WinUI3 里面使用 Win2D 进行图片的翻转,本文的方法也适用于 UWP 框架
林德熙
2024/07/08
2720
修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始
.NET 以 MIT 协议开源,于是任何人都可以尝试对其进行一丢丢的修改以实现一些原本很难实现的功能,例如在多个可执行程序(exe)之间共享同一个私有部署的 .NET 运行时。然而,对其的修改得能够编译生成期望的文件才行。本文介绍一下如何编译 dotnet/runtime 仓库,日常使用非常简单,所以如果只是轻微修改的话,本文大概就够了。
walterlv
2023/10/23
4930
修改 .NET 运行时、框架和库,从编译 dotnet runtime 仓库开始
WPF 框架开发 调试和开发 System.Xaml 的独立项目方法
本文将给大家一个 System.Xaml 的独立项目,此项目代码和 WPF 仓库的 System.Xaml 项目相同,但本文的 System.Xaml 的独立项目不依赖 WPF 其他项目,构建方便,构建速度快,搭配 System.Xaml.Demo 项目更方便调试
林德熙
2021/12/24
5820
(1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
发布于 2018-07-25 01:27 更新于 2018-07-26 23:23
walterlv
2018/09/18
1.5K0
(1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
WPF 框架开发 调试和开发 XAML 构建过程的 PresentationBuildTasks 方法
阅读本文,你可以了解如何编写开发和调试 XAML 构建为 Baml 和 g.cs 文件的过程和工具。本文也适合想要了解 WPF 的 XAML 构建过程的开发者阅读,本文提供了可以断点调试 WPF 的 XAML 构建过程的方法和代码
林德熙
2021/12/24
7710
win10 uwp 使用 msbuild 命令行编译 UWP 程序
在有一些时候,如使用持续集成的时候就不能通过 VisualStudio 的方式编译 UWP 程序,需要使用命令行的方式编译。
林德熙
2019/03/13
1.4K0
Msbuild的工具集版本
已经安装了VS2013,但用MSbuild编译的时候一直选择的是V11的设置,原来是这个环境变量的设置所致。如下设置就用的是V12(VS2013)的编译器。
用户3519280
2023/07/08
5250
win10 uwp 使用 msbuild 命令行编译 UWP 程序
在有一些时候,如使用持续集成的时候就不能通过 VisualStudio 的方式编译 UWP 程序,需要使用命令行的方式编译。
林德熙
2022/08/09
9580
win10 uwp 如何打包Nuget给其他人 创建空白的spec对空白spec进行修改创建简单的库批量创建不同平台 dll 可以给不同的需要打包
本文告诉大家,如果自己有做一些好用的库,如何使用 Nuget 打包之后上传,分享给大家。
林德熙
2018/09/18
7350
win10 uwp 如何打包Nuget给其他人
            创建空白的spec对空白spec进行修改创建简单的库批量创建不同平台 dll 可以给不同的需要打包
dotnet 使用 XWT 构建跨平台客户端 入门篇
本文告诉大家如何入门开始开发一个基于 mono 组织开源的 XWT 跨平台客户端 UI 框架的应用,本文的 xwt 是在 GitHub 上完全开源的,基于 MIT 协议的,底层采用 GTK# 的 UI 框架
林德熙
2021/08/12
1.2K0
修复 WPF 安装 WindowsAppSDK 库构建失败 NETSDK1082 和 NETSDK1112 找不到 win10-arm 失败
通过在 WPF 项目上安装 WindowsAppSDK 库,可以让 WPF 使用上 Win10 及以上版本提供的 Windows Runtime 强大的 API 集和使用上更多的黑科技。本文记录在安装 WindowsAppSDK 库之后,项目生成失败,提示 NETSDK1082 和 NETSDK1112 错误的问题,和修复的方法
林德熙
2023/04/07
1.1K0
推荐阅读
相关推荐
MSBuild 常用参数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验