Win7,VS2017,ASP Net core应用程序,目标框架是4.6。
当我尝试使用 CLI 构建项目时(在调用 dotnet 命令之前需要它),会发生错误:
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 包
- 删除包文件夹的内容并重新加载
但没有什么可以帮助我。
它可以是什么?
.NET CLI 使用的 MSBuild .net core 版本不支持 COM 引用。为了使这些引用起作用,您必须直接使用 msbuild 构建项目。使用 Visual Studio 2017 的开发人员命令提示符,您应该能够使用以下命令执行构建:
msbuild /t:Restore
msbuild /t:Build /p:Configuration=Release
msbuild /t:Publish /p:Configuration=Release
(您还可以添加/m
以启用并行构建)。
运行使用这些项目文件的 CLI 工具时,也不支持此引用,因为它们也依赖于 MSBuild 的 .NET Core 版本。
但是,有一种解决方法可以使 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)