Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 无法加载ResolveComReference任务_.net_Visual Studio_Visual Studio 2017 - Fatal编程技术网

.net 无法加载ResolveComReference任务

.net 无法加载ResolveComReference任务,.net,visual-studio,visual-studio-2017,.net,Visual Studio,Visual Studio 2017,Win7,VS2017,ASP Net核心应用程序,目标框架为4.6 当我尝试使用CLI构建项目时(在调用dotnet命令之前需要使用CLI),会出现以下错误: C:…\Microsoft.Common.CurrentVersion.targets(2547,5):错误MSB4062: 无法启动“Microsoft.Build.T asks.ResolveComReference”任务 从程序集Microsoft.Build.Tasks.Core加载,版本=15.1.0.0, 区域性=中性,Pu

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

当我尝试使用CLI构建项目时(在调用dotnet命令之前需要使用CLI),会出现以下错误:

C:…\Microsoft.Common.CurrentVersion.targets(2547,5):错误MSB4062: 无法启动“Microsoft.Build.T asks.ResolveComReference”任务 从程序集Microsoft.Build.Tasks.Core加载,版本=15.1.0.0, 区域性=中性,PublicKeyToken=b03f5f7f11d50a3a。确认 声明是正确的,即程序集及其所有 依赖项可用,并且任务包含公共类 它实现了Microsoft.Build.Framework.ITask。[C:\project.csproj]

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

  • 重新启动VS
  • 使用VS工具清理并构建项目(已成功完成)
  • 加载Microsoft.Build包
  • 删除packages文件夹的内容并重新加载
但什么都帮不了我


它可以是什么?

COM引用不受.net CLI使用的.net核心版本MSBuild的支持。要使这些引用起作用,必须直接使用msbuild生成项目。使用Visual Studio 2017的开发者命令提示符,您应该能够使用以下命令执行生成:

msbuild /t:Restore
msbuild /t:Build /p:Configuration=Release
msbuild /t:Publish /p:Configuration=Release
(您还可以添加
/m
以启用并行生成)

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

但是,有一种变通方法可以使CLI工具能够使用该项目,但不允许它们使用.NET CLI完全构建。在使用.NET核心版本的MSBuild生成时,将以下
条件
属性添加到
ComReference
项以“隐藏”COM引用:

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

{some guid}

当您编写“使用CLI构建”时,您是指
dotnet
CLI吗?(例如,
dotnet build
)@Martin Ullrich,是的,当我使用诸如“dotnet ef migrations add qwe”之类的CLI命令时会发生此错误谢谢,Martin,您的回答对我很有帮助。我打开了我的.csproj文件,在那里找到了一些com引用(COMReference部分)。仅仅删除这些部分是一个解决方案,这可能取决于您的项目是否真正需要这些COM引用。相关。这只会导致缺少类型的编译错误instead@MartinUllrich谢谢,经过大量的努力,我终于编辑了项目文件并评论了ommRef。。塞西翁