.NET Core 2.1升级3.1后发布项目提示System.Runtime.CompilerServices.Unsafe报错
.NET Core 3.1 发布报错解决方案
System.Runtime.CompilerServices.Unsafe doesn't support netcoreapp3.1. Consider updating your TargetFramework to netcoreapp3.1 or later.
该报错的核心原因是项目依赖的System.Runtime.CompilerServices.Unsafe包版本与.NET Core 3.1框架不兼容,本地运行正常是因为开发环境存在隐式引用或兼容缓存,发布阶段的严格依赖校验会触发该错误,可按以下步骤修复:
- 首先确认项目
.csproj文件的目标框架配置正确,检查是否存在<TargetFramework>netcoreapp3.1</TargetFramework>配置,避免迁移时多框架配置未完全更新。 - 升级
System.Runtime.CompilerServices.Unsafe包到兼容版本,4.7.1及以上版本均支持.NET Core 3.1。你可以直接在NuGet包管理器中搜索该包升级,也可以在包管理器控制台执行命令:
也可以直接修改Install-Package System.Runtime.CompilerServices.Unsafe -Version 4.7.1.csproj文件中的包引用版本:<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.7.1" /> - 清理项目缓存,删除项目根目录下的
bin、obj文件夹后重新执行发布操作。如果仍有报错,检查项目依赖的其他第三方包是否间接引用了低版本的System.Runtime.CompilerServices.Unsafe,可以在.csproj的<PropertyGroup>节点下添加配置开启自动绑定重定向:<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
内容的提问来源于stack exchange,提问作者Morteza Tondari
相关产品推荐
相关产品推荐

