.NET Core项目EnsureBindingRedirects任务意外失败,寻求解决办法
我之前处理过不少类似的兼容性问题,针对你用.NET Core项目搭配Microsoft.Bcl.Build 1.0.14时遇到的EnsureBindingRedirects任务失败的情况,给你几个实用的排查和解决步骤:
先确认是否真的需要Microsoft.Bcl.Build
.NET Core本身已经内置了绑定重定向的处理机制,而Microsoft.Bcl.Build原本是为.NET Framework项目设计的工具包,强行在.NET Core项目中使用很容易引发构建冲突。如果你的项目不是必须依赖这个包,直接卸载它,大部分情况下就能解决问题。手动禁用EnsureBindingRedirects任务(如果必须保留包)
要是项目确实需要保留这个NuGet包,可以在你的.csproj文件中添加配置,直接禁用这个冲突的任务:<PropertyGroup> <!-- 关闭自动生成绑定重定向 --> <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>false</GenerateBindingRedirectsOutputType> </PropertyGroup>或者更直接地,覆盖原任务为空:
<Target Name="EnsureBindingRedirects" BeforeTargets="Build" />尝试更新Microsoft.Bcl.Build版本
1.0.14是比较老旧的版本了,你可以试试更新到该工具包的最新兼容版本(比如1.0.21),新版本通常修复了不少跨框架的兼容性问题,可能就能适配.NET Core的构建流程。清理项目缓存后重建
有时候是构建缓存导致的异常,先执行命令清理项目:dotnet clean然后手动删除项目目录下的
bin和obj文件夹,再重新执行构建命令:dotnet build
额外提醒一句:如果你的项目是从.NET Framework迁移过来的,建议逐步移除这类仅适用于.NET Framework的工具包,改用.NET Core原生的构建和依赖管理机制,能减少不少类似的兼容性坑。
内容的提问来源于stack exchange,提问作者Otávio Larrosa

