包含外语资源的项目执行dotnet build时失败
我之前处理过类似的构建报错,结合经验给你几个实用的解决方向:
升级.NET SDK到匹配版本:你当前使用的dotnet SDK 2.1.102版本较旧,和Visual Studio 15.6.3(对应MSBuild 15.6)存在兼容性差异。建议升级到.NET 2.1系列的最新补丁版本(比如2.1.818,这是该分支的最后一个支持版本),升级完成后重新执行
dotnet build,大概率能解决版本不匹配导致的任务加载问题。使用VS自带的MSBuild构建:有时候dotnet CLI会调用不兼容的MSBuild版本,你可以直接用Visual Studio配套的MSBuild来执行构建。打开「Visual Studio 2017开发者命令提示符」,切换到项目根目录,运行以下命令:
msbuild /t:Build /p:Configuration=Release这样会强制使用VS 15.6.3对应的MSBuild版本,避开SDK自带版本的兼容性坑。
检查资源文件配置:因为报错出现在带外语资源的项目中,建议确认资源文件(.resx等)的属性配置是否正确。右键资源文件→属性,确保「生成操作」设置为「Embedded Resource」,如果需要生成资源访问代码,「自定义工具」设为「ResXFileCodeGenerator」。错误的资源配置也可能触发这个任务加载失败的问题。
清理项目缓存文件:尝试删除项目目录下的
obj、bin文件夹,以及解决方案的.sln.ide文件(如果存在),然后重新打开项目并构建。损坏的缓存文件偶尔会引发这类奇怪的构建错误。
额外提示:
Microsoft.Build.Tasks.AL任务主要用于生成多语言附属程序集,版本不匹配是这类报错的最常见原因,优先尝试前两个方案。
内容的提问来源于stack exchange,提问作者Eric

