如何解决OmniSharp 失败:无法创建任务“GetReferenceNearestTargetFrameworkTask”
我正在使用带有 C# 扩展的 VSCode(检查版本 - 它是最新的 - 1.23.11)并且对它非常满意。 然而,今天它突然停止工作(没有智能感知或导航)。 我检查了 OmniSharp 的日志,发现以下错误:
Failed to create instance of task "GetReferenceNearestTargetFrameworkTask"
from "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.Build.Tasks.dll".
Task assembly should be built with the same version of assembly Microsoft.Build.Framework,which is installed on computer,and in host should be set binding redirection for Microsoft.Build.Framework.
Failed to cast type "NuGet.Build.Tasks.GetReferenceNearestTargetFrameworkTask" to type "Microsoft.Build.Framework.ITask".
这可能不是准确的文本 - 我得到了本地化的消息并进行了翻译
然后我检查了哪些依赖项有“NuGet.Build.Tasks.dll”——它有“Microsoft.Build.Framework,4.0.0”。 我检查了哪些绑定重定向具有“Omnisharp.exe”。 'OmniSharp.exe.config' 包含:
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="2.0.0.0-99.0.0.0" newVersion="15.1.0.0" />
</dependentAssembly>
因此,存在重定向。
我在“Omnisharp”中打开了“调试”日志,看看它是否加载了正确的“Microsoft.Build.Framework”,是的,它加载了正确的。
我什至试图在“Microsoft.CSharp.targets”中注释掉“GetReferenceNearestTargetFrameworkTask” - 然后它以类似的方式失败,但用于另一种类型的任务。
谁能帮我处理它,或者提供一些想法 - 要检查什么? 最奇怪的是昨天晚上它运行得很好,但今天失败了,我找不到任何可以破坏它的更新迹象。
UPD 我设法克服了这个问题 - 从 GAC 中删除了 Microsoft.Build.Framework
程序集(它在 4.0 版本中存在)。在设置了 OmniSharp.exe
的 bindingRedirect
进程中工作时,我仍然不明白为什么要尝试它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。