无法加载ResolveComReference任务

时间:2017-05-22 18:21:45

标签: .net visual-studio visual-studio-2017

Win7,VS2017,ASP Net核心应用,目标框架为4.6。

当我尝试使用CLI构建我的项目时(在dotnet命令调用之前需要它)发生错误:

  

C:... \ Microsoft.Common.CurrentVersion.targets(2547,5):错误MSB4062:   " Microsoft.Build.T问.ResolveComReference"任务不可能   从程序集Microsoft.Build.Tasks.Core,Version = 15.1.0.0加载,   Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a。确认一下    声明是正确的,即汇编及其所有   依赖项可用,并且该任务包含公共类   实现Microsoft.Build.Framework .ITask。 [C:\ project.csproj]

我一直在寻找与我的问题相关的问题,并做了以下事情:

  • 重启VS
  • 使用VS工具清理并构建项目(已成功)
  • 加载Microsoft.Build包
  • 删除packages文件夹的内容并重新加载

但没有什么可以帮助我。

它可以是什么?

1 个答案:

答案 0 :(得分:10)

.Net核心版本的MSBuild不支持COM引用,这是.NET CLI使用的。对于那些工作的引用,您必须直接使用msbuild构建项目。使用Visual Studio 2017的开发人员命令提示符,您应该能够使用以下命令执行构建:

msbuild /t:Restore
msbuild /t:Build /p:Configuration=Release
msbuild /t:Publish /p:Configuration=Release

(您还可以添加/m以启用并行构建。)

运行使用这些项目文件的CLI工具时,也不支持此引用,因为它们还依赖于.NET Core版本的MSBuild。

但是,有一种解决方法可以使CLI工具能够使用该项目,但它不允许使用.NET Cli完全构建它们。将以下Condition属性添加到您的ComReference项目中以隐藏"隐藏"使用.NET Core版本的MSBuild构建时的COM引用:

<COMReference Include="FooBar" Condition="'$(MSBuildRuntimeType)' != 'Core'">
  <Guid>{some-guid}</Guid>
  <!-- a lot more metadata elements -->
</COMReference>