v2.0.320 版本中 VS Code IntelliSense 的 C# 扩展有何变化?

sta*_*all 6 c# visual-studio-code

2023 年 8 月 2 日发布的 2.0.320 版本中,有关 IntelliSense 的某些内容发生了变化,这导致了 IntelliSense 的错误行为。格式似乎存在一些问题,并且我收到了一些我认为不应该收到的警告。发生了什么?对此我能做什么?

sta*_*all 6

版本 2.0.320 的变更日志条目指出:

\n
\n

我们将切换到新的 Roslyn 语言服务器作为默认服务器。我们认识到此版本与 OmniSharp 版本不具有完全同等性。如果您在我们之前需要其中一项功能,您可以按照以下说明切换回 OmniSharp 。

\n
\n

这些链接的说明如下:

\n
\n

如果您不想利用强大的语言服务器功能,您可以通过转至扩展设置并将其设置dotnet.server.useOmnisharp为 true 来恢复使用 OmniSharp。接下来,卸载或禁用 C# Dev Kit。最后,重新启动 VS Code 才能生效。

\n
\n

在撰写本文时,该设置的描述如下:

\n
\n

启用后切换为使用 Omnisharp 服务器来实现语言功能(需要重新启动)。安装 C# 开发工具包后将不支持此选项。

\n
\n

因此,您可以这样做,或者等待功能奇偶校验和错误修复滚入。最后一个选项是回滚到扩展的先前版本(请参阅VS Code - 如何回滚扩展/安装特定扩展版本)。

\n
\n

您可以在https://github.com/dotnet/vscode-csharp/blob/main/CHANGELOG.md#known-issues-in-20320找到 2.0.320 版本中的已知问题列表,该列表当时这篇文章写道:

\n
\n
    \n
  • 诊断相关的功能请求和改进#5951
  • \n
  • [O# Parity] FixAll 支持代码修复和重构#5735
  • \n
  • [O# 奇偶校验] Nuget 恢复#5725
  • \n
  • [O# Parity] 支持加载非基于解决方案的项目/文件#5722
  • \n
  • [O# Parity] 超出 proc 设计时构建/遗留 csproj 支持#5721
  • \n
  • [O# Parity] 在上下文中运行和调试测试#5719
  • \n
  • 从 .csproj 和 .sln 进行调试#5876
  • \n
  • ProcessFrameworkReferences 任务意外失败#5980
  • \n
\n
\n
\n

其他一些相关的历史变化: GitHub 存储库OmniSharp/omnisharp-vscode已从dotnet/vscode-csharp. 另请参阅LSP 支持的 Visual Studio Code C# 扩展 #5708 的更新,其中更详细地描述了相关更改。

\n

  • 实际的答案是微软的 VS Code C# 扩展放弃了开源的 OmniSharp 项目,取而代之的是自己的闭源扩展。一年前对此有[相当大的争议](https://visualstudiomagazine.com/articles/2022/06/16/csharp-vs-code-tool.aspx)。OmniSharp 可以由任何编辑器使用,包括 Sublime 或 Emacs,并且不受 MS 控制。 (3认同)