wapproj项目打包MSIX时出现'project.assets.json'无net6.0/win-x64目标的错误求助
wapproj项目打包MSIX时出现'project.assets.json'无net6.0/win-x64目标的错误求助
看起来你遇到的是wapproj打包MSIX时很常见的运行时标识符(RID)配置不匹配问题,我来帮你梳理几个针对性的解决方向,你可以逐一尝试:
先修正wapproj的核心配置
你之前只添加了<TargetFramework>net6.0</TargetFramework>,但WinForms属于Windows桌面专属框架,wapproj需要明确指定Windows特定的框架版本和运行时标识符。打开你的wapproj文件,在<PropertyGroup>块里更新配置:<PropertyGroup> <TargetFramework>net6.0-windows</TargetFramework> <RuntimeIdentifiers>win-x64</RuntimeIdentifiers> <Platforms>x64</Platforms> </PropertyGroup>同步主WinForms项目的配置
确保你的C# WinForms项目也和wapproj的配置对齐:- 右键WinForms项目→属性→生成
- 平台目标选择
x64,取消勾选“首选32位”选项 - 切换到“包”标签页,在“运行时标识符”列表里添加
win-x64 - 确认目标框架设置为
net6.0-windows(如果之前是单纯的net6.0,需要改成这个)
确认C++ DLL的架构匹配
因为你用到了C++ DLL,必须保证这个DLL是x64架构编译的,并且已经放到WinForms项目的x64输出目录(比如bin/x64/Debug或Release)中。如果DLL是32位的,会导致打包时资产文件识别异常。执行完整的清理+还原流程
单纯删除bin/obj文件夹可能不够彻底,建议用命令行执行更完整的操作:- 打开命令提示符,导航到你的解决方案根目录
- 运行
dotnet clean清理所有项目的输出文件 - 运行
dotnet restore --runtime win-x64强制按x64运行时还原所有依赖 - 重新生成整个解决方案,再尝试打包wapproj
检查wapproj的项目引用配置
确保wapproj引用的WinForms项目是x64配置:- 右键wapproj→添加→项目引用,勾选你的WinForms项目
- 在引用对话框里点击“配置”按钮,确认在
x64平台下,引用的项目处于启用状态,且对应x64输出版本
如果以上步骤都试过还是不行,可以尝试删除解决方案根目录下的obj文件夹和.vs隐藏文件夹,然后重新打开Visual Studio再操作一次。
备注:内容来源于stack exchange,提问作者v38armageddon
相关产品推荐
相关产品推荐

