如何解决无法在C#中构建和运行测试:无法从程序集Microsoft.Build.CppTasks.Common,版本= 12.0.0.0
当我对.csproj项目执行msbuild
时,它会成功构建。
但是,当尝试在 VS2017 中构建并运行测试时,出现以下错误:
无法从程序集中加载“ Xsd”任务 Microsoft.Build.CppTasks.Common,版本= 12.0.0.0,文化=中性, PublicKeyToken = b03f5f7f11d50a3a。无法加载文件或程序集 'Microsoft.Build.CppTasks.Common,版本= 12.0.0.0,文化=中性, PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。的 系统找不到指定的文件。确认 声明是正确的,该程序集及其所有依赖项都是 可用,并且该任务包含一个实现了的公共类 Microsoft.Build.Framework.ITask。
我在this post中尝试了解决方案,但不幸的是没有用。请具体说明/切实可行。
解决方法
无法在C#中构建和运行测试:无法加载“ Xsd”任务 来自程序集Microsoft.Build.CppTasks.Common,版本= 12.0.0.0
正如this document所说,自 VS2017 起, MSBuild 中已弃用 Xsd任务。
似乎您自己的项目中需要由MSBuild XSD 任务进行编译,因此会出现此错误。
并且您的插件应使用VS2015的MSBuild或更早版本的MSBuild来构建此测试项目。因此,错误并没有在那里发生。
建议
1),因此您应 VS2015 或更早的VS来构建项目。
2),或者您可以手动将CppCodeProvider.dll
添加到 VS2017 下的 GAC 中,然后在中进行构建> VS2017 。
解决方案
以管理员身份运行 CMD ,然后运行:
cd C:\Program Files (x86)\Microsoft Visual Studio\2017\xxx\Common7\IDE\PublicAssemblies
gacutil /i Microsoft.VisualC.VSCodeProvider.dll
================================================ =
更新1
为什么VS2017的MSBuild会从VS2013调用任务dll是很奇怪的。
Microsoft.Build.CppTasks.Common,Version=12.0.0.0
来自 VS2013 。
因此,请尝试以下步骤:
1)检查是否已定义名为VCTargetsPath
的系统环境变量,并检查其值是否与VS2013
相关。 无论如何,您应该删除该变量,然后重新启动VS再次进行测试。
2)还要尝试将这些dll注册到GAC:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Build.CPPTasks.Common.dll
或
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Build.CPPTasks.Common.dll
3)禁用扩展-> 管理扩展
下的任何第三方扩展4)尝试repair VS或更新VS,以检查VS是否损坏。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。