WPF .NET Core 3.1备份项目解压后构建报MC1000错误如何解决
问题原因
该报错是.NET Core 3.1 WPF项目的依赖版本冲突问题:你项目引用的System.Runtime 4.3.1包适配目标为netstandard1.5,该版本未包含System.Runtime.CompilerServices.SuppressIldasmAttribute特性,同时你使用的5.0版本SDK编译低版本目标框架时出现了引用优先级异常,优先调用了NuGet包的程序集而非框架自带的兼容程序集。
解决方案
- 强制排除低版本System.Runtime的编译资产
右键项目编辑.csproj文件,在节点中添加以下配置,强制项目使用.NET Core 3.1框架自带的System.Runtime程序集: <PackageReference Include="System.Runtime" Version="4.3.1" ExcludeAssets="compile" /> - 清空全局NuGet缓存
之前的异常还原结果可能残留在全局缓存中,打开终端执行以下命令清除所有NuGet本地缓存:dotnet nuget locals all --clear
执行完成后右键解决方案选择「还原NuGet包」。 - 指定编译用SDK版本
在项目根目录新建global.json文件,指定使用3.1版本SDK编译,避免高版本SDK的兼容问题:{ "sdk": { "version": "3.1.416", "rollForward": "latestMinor" } } - 排查第三方包依赖
打开NuGet包管理器检查所有已安装包,确认不存在仅适配netstandard1.x的第三方依赖,将存在兼容问题的包升级到支持netstandard2.0及以上、或明确适配.NET Core 3.1的版本。
完成以上操作后重新编译项目即可解决该报错。
内容的提问来源于stack exchange,提问作者Hossein
相关产品推荐
相关产品推荐

