问题描述
我正在使用带有 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 (将#修改为@)