添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

什么是 C# 开发工具包?

C# Dev Kit 是一个扩展,旨在增强 Visual Studio Code 中的 C# 开发体验。它旨在为 VS Code 带来更广泛、更高效、更可靠的 C# 体验。开发工具包不会取代 现有的 C# 扩展 ,而是在其提供的出色语言服务功能的基础上添加了功能。开发人员可以选择继续使用现有 C# 扩展的更新版本,或通过添加 C# 开发工具包来增强体验。

目前支持哪些项目类型?

C# Dev Kit 支持为 .NET Core(通常也称为 .NET)构建 Web 应用程序、控制台应用程序、类库项目和测试项目。 .NET MAUI 扩展 和Unity 扩展 构建在 C# Dev Kit 之上,并为构建 .NET 多平台应用程序 UI (MAUI) 应用程序和 Unity 应用程序提供额外支持。这些扩展支持现代 .NET 项目格式,也称为“sdk 样式”项目。如果要构建非 SDK 格式的项目(例如 .NET Framework 应用程序和 Xamarin 应用程序),请参阅 项目系统 部分。

C# 开发工具包中包含哪些扩展?

如今,C# 开发工具包系列中包含的扩展包括:

  • C# 开发套件
  • C# 开发套件的 IntelliCode
  • .NET毛伊岛
  • 这些扩展的使用受 C# Dev Kit 扩展系列的 EULA 管辖。

    这些扩展还具有带有自己许可的依赖项 - 例如,C# Dev Kit 扩展依赖于 C# 扩展

    谁可以使用 C# 开发工具包?

    C# 开发工具包可通过社区许可证向符合资格的人员提供,并且还作为现有 Visual Studio 订阅的 另一个补充。这意味着拥有有效 Visual Studio 订阅的开发人员现在就可以使用 C# Dev Kit。

    对于个人、学术和开源项目,可以免费使用 C# 开发工具包。出于商业目的,最多 5 人的团队也可以免费使用 C# 开发套件。对于 6 名以上的开发人员,这些用户将需要 Visual Studio Professional(或更高版本)订阅。C# 开发工具包还包含在 GitHub Codespaces 和 Microsoft Dev Box 中,因此这些产品的用户可以免费访问 C# 开发工具包。

    我在哪里提交反馈和建议?

    用户可以通过 VS Code 的“帮助”>“报告问题” 来报告问题或建议。选择是否是错误、功能请求或性能问题,在 扩展 上进行文件,然后从扩展列表中选择 C# Dev Kit 。

    C# 开发工具包是开源的吗?为什么不?

    不会。C# Dev Kit 是闭源的,但依赖于 C# for VS Code 扩展,该扩展是开源的,并且都与Roslyn Razor 等开源组件进行通信。我们 C# 开发工具包的目标之一是为使用 VS Code 的 C# 开发人员提供改进的生产力体验。为了实现这一目标,C# Dev Kit 包含了一些与我们其他工具共享的专有、闭源功能。为了向 VS Code 用户提供这些体验,我们需要引入 C# Dev Kit 作为闭源扩展。

    我怎样才能做出贡献?

    C# 扩展是 C# 开发工具包的一部分,是完全开源的,并受 这些许可条款的 约束。此扩展的源代码可在 https://github.com/dotnet/vscode-csharp 上获取,并根据 MIT 许可证获得许可。

    该项目采用了贡献者契约 定义的行为准则,以阐明我们社区的预期行为。有关详细信息,请参阅 .NET 基金会行为准则 。通过签署 CLA ,社区可以免费使用您对 .NET 基金会项目的贡献。

    .NET SDK

    安装脚本超时

    请注意,根据您的网络速度,安装 .NET Core 运行时可能需要一些时间。默认情况下,如果完成时间超过 4.5 分钟,安装将失败终止。如果您认为下载时间太短(或太多),您可以通过设置 dotnetAcquisitionExtension.installTimeoutValue 自定义值来更改超时值。

    了解有关配置 VS Code 设置的更多信息 ,并参阅下面的文件中自定义超时的示例 settings.json 。在此示例中,自定义超时值为 180 秒,即 3 分钟:

    "dotnetAcquisitionExtension.installTimeoutValue" : 180

    获取 .NET 7 时出错

    注意:如果您位于中国,您的 .NET 下载可能会被阻止并导致超时。

    您需要确保已安装 .NET 7。作为解决方法,您可以将 .NET 运行时获取扩展指向现有 .NET 7 安装:

    如何手动安装 .NET?

    如果 .NET 安装失败或者您想要重复使用现有的 .NET 安装,则可以使用该 dotnetAcquisitionExtension.existingDotnetPath 设置。.NET 可以从 .NET 网站 手动安装。要将扩展定向到该安装,请使用扩展 ID 和路径更新您的设置,如下所示:

    "dotnetAcquisitionExtension.existingDotnetPath" : [ "extensionId" : "msazuretools.azurerm-vscode-tools" , "path" : "C \\ Program Files \\ dotnet \\ dotnet.exe" "dotnetAcquisitionExtension.existingDotnetPath" : [ "extensionId" : "msazuretools.azurerm-vscode-tools" , "path" : "/usr/local/share/dotnet/dotnet"

    该扩展程序认为我处于离线状态,错误响应为 400 或 407,并且我有代理

    如果您的系统使用代理并禁用了注册表访问,则需要在扩展设置中显式设置代理 URL。通过环境变量和注册表设置时会自动检测代理,但如果您的代理仅通过注册表项管理并且注册表访问被禁用,则扩展程序无法找到它。要设置代理 URL,请添加以下扩展设置:

    "dotnetAcquisitionExtension.proxyUrl" : "https://your_proxy_url:port"

    解决方案资源管理器报告 C# 开发工具包不支持我的项目

    这通常是因为该项目面向 .NET Framework 而不是 .NET Core/.NET。目前,C# Dev Kit 不支持 .NET Framework 项目。

    要解决此问题,您有两种选择。

    您可以 将项目更新 为 SDK 样式项目,以访问所有可用的 C# Dev Kit 功能。

    或者,您可以使用“设置”编辑器中的 “首选 CSharp 扩展”工作区设置将项目和解决方案加载委托给 C# 扩展。 请记住,使用此设置将无法使用某些 C# Dev Kit 功能。要访问此设置,请转到“设置”编辑器并选择 “工作空间” 选项卡。然后,在搜索栏中搜索“首选 CSharp”并选中“ 首选 CSharp 扩展” 设置旁边的框。如果您尝试加载 .NET Framework 项目,C# Dev Kit 将自动显示一条通知,要求您将项目更新为 SDK 样式项目,或者通过选择“使用 C# 扩展”来让 C# 扩展加载您的项目或解决 方案 通知。此选项将自动选择 “首选 CSharp 扩展” 设置。请注意,您需要重新加载 VS Code 才能使此设置生效。

    我单击“创建 .NET 项目”按钮,但没有任何反应

    当扩展版本不匹配时,通常会发生这种情况。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 是否已启用。