无法从Microsoft.Build.Tasks.Core

时间:2019-01-06 13:13:28

标签: c# msbuild msbuild-task

我正在使用MsBuild 15.0 API来构建我们自己的项目。 由于GAC中不存在此版本的MsBuild,因此我不得不使用称为MSBuildLocator的库来加载MsBuild的程序集。 当我要使用COMReferences构建项目时,出现以下错误:

  

无法从实例化“ ResolveComReference”任务   “ Microsoft.Build.Tasks.Core,版本= 15.1.0.0,文化=中性,   PublicKeyToken = b03f5f7f11d50a3a“。无法加载文件或程序集   'Microsoft.Build.Tasks.Core,版本= 15.1.0.0,文化=中性,   PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。的   找到的程序集的清单定义与程序集不匹配   参考。 (来自HRESULT的异常:0x80131040)   “ ResolveComReference”任务已被声明或错误使用,或者   施工期间失败。检查任务名称的拼写和   程序集名称。

这是我的程序集绑定日志

Microsoft.Build.dll

  

LOG:此绑定在默认的加载上下文中启动。日志:使用应用程序   配置文件:   C:\ Users \ tfsbuild \ Desktop \ MSBuildTester \ MSBuildTester \ bin \ Debug \ MSBuildTester.exe.Config   日志:使用主机配置文件:日志:使用机器配置   来自的文件   C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config。   日志:在应用程序配置文件:4.0.0.0中找到重定向   重定向到15.1.0.0。日志:政策后参考:Microsoft.Build,   版本= 15.1.0.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a   日志:GAC查找失败。日志:尝试下载新的URL   文件:/// C:/Users/tfsbuild/Desktop/MSBuildTester/MSBuildTester/bin/Debug/Microsoft.Build.DLL。   日志:尝试下载新的URL   文件:/// C:/Users/tfsbuild/Desktop/MSBuildTester/MSBuildTester/bin/Debug/Microsoft.Build/Microsoft.Build.DLL。   日志:尝试下载新的URL   文件:/// C:/Users/tfsbuild/Desktop/MSBuildTester/MSBuildTester/bin/Debug/Microsoft.Build.EXE。   日志:尝试下载新的URL   文件:/// C:/Users/tfsbuild/Desktop/MSBuildTester/MSBuildTester/bin/Debug/Microsoft.Build/Microsoft.Build.EXE。   日志:所有探测URL尝试失败。

Microsoft.Build.Tasks.Core.dll

  

LOG:此绑定从LoadFrom加载上下文开始。 WRN:本机映像将   无法在LoadFrom上下文中进行探测。仅会探查本机图像   默认的加载上下文,例如Assembly.Load()。日志:使用   应用程序配置文件:   C:\ Users \ tfsbuild \ Desktop \ MSBuildTester \ MSBuildTester \ bin \ Debug \ MSBuildTester.exe.Config   日志:使用主机配置文件:日志:使用机器配置   来自的文件   C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config。   日志:在应用程序配置文件中找到重定向:15.1.0.0   重定向到15.1.0.0。日志:政策后参考:   Microsoft.Build.Tasks.Core,版本= 15.1.0.0,文化=中性,   PublicKeyToken = b03f5f7f11d50a3a日志:GAC查找失败。日志:   尝试下载新的URL   文件:/// C:/Users/tfsbuild/Desktop/MSBuildTester/MSBuildTester/bin/Debug/Microsoft.Build.Tasks.Core.DLL。   日志:尝试下载新的URL   文件:/// C:/Users/tfsbuild/Desktop/MSBuildTester/MSBuildTester/bin/Debug/Microsoft.Build.Tasks.Core/Microsoft.Build.Tasks.Core.DLL。   日志:尝试下载新的URL   文件:/// C:/Users/tfsbuild/Desktop/MSBuildTester/MSBuildTester/bin/Debug/Microsoft.Build.Tasks.Core.EXE。   日志:尝试下载新的URL   文件:/// C:/Users/tfsbuild/Desktop/MSBuildTester/MSBuildTester/bin/Debug/Microsoft.Build.Tasks.Core/Microsoft.Build.Tasks.Core.EXE。   日志:尝试下载新的URL文件:/// C:/ Program Files   (x86)/ Microsoft Visual   Studio / 2017 / Enterprise / MSBuild / 15.0 / Bin / Microsoft.Build.Tasks.Core.DLL。   日志:程序集下载成功。尝试设置文件:   C:\ Program Files(x86)\ Microsoft Visual   Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \ Microsoft.Build.Tasks.Core.dll   日志:进入从源运行设置阶段。日志:程序集名称是:   Microsoft.Build.Tasks.Core,版本= 15.1.0.0,文化=中性,   PublicKeyToken = b03f5f7f11d50a3a日志:where-ref绑定代码库不存在   匹配在默认上下文中找到的内容。将结果保存在LoadFrom中   上下文。日志:绑定成功。从C:\ Program Files返回程序集   (x86)\ Microsoft Visual   Studio \ 2017 \ Enterprise \ MSBuild \ 15.0 \ Bin \ Microsoft.Build.Tasks.Core.dll。   日志:程序集在LoadFrom加载上下文中加载。

我该如何解决?!

1 个答案:

答案 0 :(得分:0)

我刚刚在 VS 2019 的最新版本中得到了这个。自从前几天它成功编译以来,我所做的就是添加几行琐碎的代码 - 没有新功能。我从调试模式切换到发布并构建了解决方案 - 没有变化。我切换回调试,问题就消失了!无需更改编码。

然后当我去实际调试项目时,错误又回来了!