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]
我一直在寻找与我的问题相关的问题,并做了以下事情:
但没有什么可以帮助我。
它可以是什么?
答案 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>