当扩展版本不匹配时,通常会发生这种情况。C# 开发工具包需要 2.0 版或更高版本的
C# 扩展
。如果您使用的是 C# 扩展 v1,C# Dev Kit 以及 C# Dev Kit 相关命令将无法正常工作。要解决此问题,请将 C# 扩展升级到最新版本。
项目系统报告遇到问题
当发生内部项目系统错误时,您通常会在 VS Code 的一角看到类似这样的通知弹出:
选择
“打开日志”
按钮可打开显示问题发生位置的堆栈跟踪的视图。选择并复制日志中的所有文本。通过 VS Code 报告问题并确保包含从日志中复制的文本。
当我打开解决方案时,我收到“无法恢复解决方案”的通知
选择
显示错误
。这将打开 NuGet 的输出面板。仔细阅读错误以确定程序包还原无法完成的原因。如果无法解决问题,请通过 VS Code 报告问题。
解决方案资源管理器显示“未找到兼容的 .NET SDK”
导致此错误的最可能原因是
global.json
文件指定的 SDK 与系统上安装的 SDK 不同。
打开“输出”窗口并切换到
“项目”
窗格以查找更多信息。你应该看到这样的东西:
要解决此问题,请更新以指定已安装的 SDK,或从
下载 .NET
global.json
页面安装指定的 SDK 。
接下来,关闭并重新打开工作区。
SDK 也可能未安装在 C# Dev Kit 已知的位置。例如,如果 SDK 是由包管理器而不是通过 Microsoft 提供的安装程序安装的,则可能会发生这种情况。要解决此问题,请通过包管理器卸载 SDK,然后通过
Download .NET
安装它。
测试资源管理器
为什么我的测试没有出现在“测试资源管理器”面板中?
确保您的解决方案包含测试项目。仅包含属于打开的解决方案一部分的测试项目。要查看测试项目是否是解决方案的一部分,请在文件资源管理器中打开“解决方案资源管理器”视图,然后查看该项目是否出现在树中。右键单击解决方案节点可添加现有测试项目,或在解决方案中创建新的测试项目。
C# Dev Kit 还要求在测试出现在“测试资源管理器”面板中之前已成功构建您的项目。此外,如果对您的项目/解决方案进行了
清理
,测试 dll 将从测试资源管理器面板中删除。
验证您的测试项目是解决方案的一部分后,通过右键单击解决方案资源管理器中的解决方案并选择“
构建
或使用
⇧⌘B”
(Windows、Linux
Ctrl+Shift+B
)
来构建您的解决方案。构建完成后,您的测试将显示在“测试资源管理器”面板中。
我的测试显示在“测试资源管理器”面板中,但我无法调试它们
确保您的测试针对 NET Core。C# Dev Kit 不支持 .NET Framework 项目,尽管 .NET Framework 项目可能会加载并且看起来可以工作。VS Code 中的调试器不支持 .NET Framework。
我刚刚向我的测试项目添加了新测试,但它们没有出现在“测试资源管理器”面板中?
C# Dev Kit 要求它已成功构建您的项目,然后测试才会显示在“测试资源管理器”面板中。
通过右键单击解决方案资源管理器中的解决方案并选择
“生成”
或
“⇧⌘B”
(Windows、Linux
Ctrl+Shift+B
)
来构建您的解决方案。构建完成后,您的测试将显示在“测试资源管理器”面板中。
当我F5时,什么也没有发生
确保您打开了 C# 项目或者活动文档是
.cs
或
.razor
文件。如果调试器仍然无法加载,请确保 C# 开发工具包和 C# 扩展均已激活。
当我按 F5 时,它要求我“选择调试器”。我怎么知道该选哪一个?
如果您尝试调试 .NET 控制台应用程序、Blazor 服务器应用程序、Blazor WebAssembly 或 Web 应用程序,请确保选择
C#
选项。其他选项可能是其他扩展的一部分,例如用于JavaScript 调试的
Node或用于 Python 调试的
Python
,而不是 C# Dev Kit 的一部分。
为什么调试不起作用?
如果您尝试调试库或测试项目,则可能需要采取一些额外的步骤来确保代码得到正确调试。要调试库,您可以创建与库交互的控制台或 Web 应用程序。对于测试项目,您可以使用测试资源管理器来有效地调试代码。
调试时,我的断点没有绑定
您正在调试的进程不是在“调试”中构建的,请确保在调试进程之前构建为“调试”。
C# 编辑器
如何让 IntelliSense 正常工作?
确保您有一个打开的项目或解决方案。如果您有多个解决方案,扩展程序将自动打开一个或提示您打开一个。接下来,在设置搜索栏中搜索“Trace”,然后从下拉列表中将
Dotnet
>
Server:
设置为
Trace 。
此选项提供更多输出信息以帮助开发团队诊断问题。
完成此更改后,通过打开命令面板 (
⇧⌘P
(Windows、Linux
Ctrl+Shift+P
)
) 重新加载窗口,然后输入“重新加载窗口”并按
Enter
。重新加载窗口后,在“输出”面板 (
⇧⌘U
(Windows
Ctrl+Shift+U
、Linux
Ctrl+K Ctrl+H
)
)中检查项目日志,然后从下拉列表中选择
“项目” 。
这将显示与您的项目未完全加载相关的任何错误。复制“输出”面板中的所有文本并通过 VS Code 报告问题,确保包含复制的文本。
C# 扩展无法启动服务器
作为解决方法,您可以使用以下设置将 .NET 运行时获取扩展指向现有 .NET 7 安装
dotnetAcquisitionExtension.existingDotnetPath
:
"dotnetAcquisitionExtension.existingDotnetPath"
: [
"extensionId"
:
"msazuretools.azurerm-vscode-tools"
,
"path"
:
"C
\\
Program Files
\\
dotnet
\\
dotnet.exe"
我有太多诊断或没有足够的诊断
C
# 扩展
允许您配置各种后台代码分析设置。要访问设置,请转至
文件
>
首选项
>
设置
或使用键盘快捷键 (
⌘,
(Windows, Linux
Ctrl+,
)
)。在搜索栏中,输入“分析”以缩小与代码分析相关的设置范围。在
运行后台代码分析:
下,您可以从下拉菜单中选择分析范围。默认设置是分析打开的文件,但您可以将其自定义为完整解决方案、无或打开文档。
您还可以使用 EditorConfig 文件来配置诊断和代码分析。要了解有关 EditorConfig 的更多信息,请查看
文档
。
如果您没有看到足够的诊断信息或根本没有看到,则您的项目可能未完全加载。要检查是否属于这种情况,请参阅
如何让 IntelliSense 正常工作?
它提供了有关如何验证项目是否已完全加载的说明。
剃刀编辑器
大多数或所有 Blazor 组件都会显示警告
在发现 Blazor 组件之前,C# Dev Kit 需要成功加载您的项目。此外,Razor 语言服务器需要
project.razor.vscode.json
生成一个文件才能了解项目的状态。如果未生成此文件,或者在没有任何组件的情况下生成此文件,则 Razor 体验可能会受到影响。
为了提高性能,扩展有时会推迟生成或加载此文件,直到您打开第一个
.razor
或
.cshtml
文件。为了确保您尝试使用的项目的解决方案资源管理器中没有错误,请仔细检查。
如果您的项目已正确加载,请验证文件系统上的文件夹
project.razor.vscode.json
中是否存在文件。
obj\Debug\<tfm>
在该文件中,确保不存在空数组
TagHelpers
。
要强制重新生成文件,请关闭所有打开的
.razor
或
.cshtml
文件,重新加载 VS Code 窗口,并在项目正确加载后,打开任何
.razor
或
.cshtml
文件以触发重新生成过程。
Razor 文件中提到了目标框架错误
Razor 语言服务器通常没有“解决方案”的概念,而是根据
project.razor.vscode.json
项目
obj\Debug\<tfm>
文件夹中是否存在文件来加载项目。有时,目标框架中不再使用的旧文件可能会引起混乱,使 Razor 服务器认为项目是多目标的,或者某些组件在实际情况并非如此时仍然被引用。
要解决此问题,请清除
obj
文件夹中的旧文件夹或清除所有文件夹。然后,重新加载 VS Code 窗口并打开一个
.razor
文件。这应该确保生成新的 JSON 文件,并删除旧的文件。
我没有完成整条线
启用GitHub Copilot
扩展后,整行补全功能将被禁用,以便您能够利用更高级的
AI 补全
功能。您可以通过检查 VS Code 右下角是否存在 Copilot 徽标来验证 Copilot 是否已启用。
10/3/2023