C# 调试配置(.NET Core、.NET 5+ 和 ASP.NET Core)的项目设置

可在项目属性页的“调试”选项卡“生成”选项卡中更改 C# 项目调试设置。

若要打开属性页,在“解决方案资源管理器”中选择项目,然后选择“属性”图标,或右键单击项目并选择“属性” 。

有关详细信息,请参见调试和发布配置

重要

这些设置不适用于 .NET Framework 或 UWP 。 若要配置 .NET Framework 的调试设置,请参阅 C# 调试配置的项目设置

“调试”选项卡

从 Visual Studio 2022 开始,选择“调试”选项卡中的“打开调试启动配置文件 UI”可打开启动配置文件 UI 和更改调试设置。

启动配置文件(.NET Core、.NET 5+)

设置 说明
命令行参数 指定要调试的应用的命令行参数。 命令名称为“启动外部程序”中指定的应用名称。
工作目录 指定要调试的应用的工作目录。 在 C# 中,默认情况下,工作目录为 \bin\debug。
使用远程计算机 对于远程调试,请选择此选项,然后输入远程调试目标的名称或 Msvsmon 服务器名称
应用在远程计算机上的位置由“生成”选项卡中的“输出路径”属性指定 。此位置必须是远程计算机上的共享目录。
环境变量 在运行应用程序进程之前设置环境变量。 有关 ASP.NET Core 的信息,请参阅环境
启用非托管代码调试 从托管应用调试对本机(非托管)Win32 代码的调用。
启用 SQL Server 调试 调试 SQL Server 数据库对象。
启用 WebView2 调试 使用基于 Microsoft Edge (Chromium) 调试器调试 JavaScript。

启动配置文件 (ASP.NET Core)

除了 .NET 5+ 的属性之外,ASP.NET Core 启动配置文件还包括不同 ASP.NET Core 配置文件的若干其他属性。 这些设置为项目的 launchSettings.json 文件提供了一个简单的 UI。 有关此文件的详细信息,请参阅在 ASP.NET Core 中使用多个环境中的“开发”和 launchSettings.json 部分。

启动配置文件 UI 中提供的设置包括以下内容。

设置 说明
启动浏览器 选择在启动调试时是否启动默认浏览器(使用在“URL”设置中设置的 URL)。
Url 指定 .NET 或 .NET Core 的主机 URL 的位置。 对于根据项目命名的配置文件(即 launchSettings.json 中的 commandName 属性为 Project),Kestrel 服务器侦听指定的端口 。 对于 IIS 配置文件,此值通常与“应用 URL”相同。 有关详细信息,请参阅配置项目下的 IIS 启动配置文件部分。
应用 URL 指定应用程序 URL。 对于根据项目命名的配置文件,此属性指定 Kestrel 服务器 URL,通常为 https://localhost:5001 和 http://localhost:5000

Visual Studio 默认提供 IIS Express 配置文件,并且你可以创建其他配置文件,例如 IIS 配置文件。 这些设置还对应于 launchSettings.json 中的设置。 这两种配置文件类型提供了多种设置,例如托管模型。

设置 说明
托管模型 指定“进程内”或“进程外”。 有关详细信息,请参阅 ASP.NET Core 中的托管模型
应用 SSL URL 对于 IIS Express,“应用 SSL URL”通常为 http://localhost:44334.

“生成”选项卡

下表显示了可用于调试的生成设置。 有关生成设置的完整说明,请参阅“项目设计器”->“生成”页面

设置 描述
常规>条件编译符号 定义 DEBUG 和 TRACE 常数(如果已选)。

这些常数启用 Debug 类和 Trace 类的条件编译。 定义了这两个常数后,Debug 和 Trace 类方法将向输出窗口生成输出。 如果没有这两个常数,则不编译 Debug 和 Trace 类方法,并且不生成任何输出。

通常情况下,DEBUG 在生成的调试版本中定义,而不在发布版本中定义。 调试和发布版本中都定义了 TRACE。
常规>优化代码 除非 bug 仅在经过优化的代码中出现,否则对于“调试”生成,请取消选择此设置。 经过优化的代码更难调试,因为指令与源代码中的语句并不是直接对应关系。
调试符号 指定编译器生成的调试信息的类型。 请参阅调试符号。 有关如何配置应用程序的调试性能的信息,请参阅令映像更易于调试
“输出”>“输出的基路径” 指定中间输出的基文件夹。 输出通常转到“bin\Debug”进行调试生成。
“输出”>“中间输出的基路径” 指定中间输出的基文件夹。 输出通常转到“obj\Debug”进行调试生成。

调试符号

可以选择以下调试符号选项。

  • 未发出任何符号

    指定不会生成任何调试信息。

  • PDB 文件,当前平台

    生成 .PDB 文件,这是一种特定于平台的符号文件,可提供其他工具(尤其是调试器)、主可执行文件内容的相关信息及其生成方式。

  • PDB 文件,可移植

    生成 .PDB 文件,这是一种未特定于任何平台的可移植符号文件,可提供其他工具(尤其是调试器)、主可执行文件内容的相关信息及其生成方式。 有关详细信息,请参阅 Portable PDB(可移植 PDB)。

  • 嵌入到 DLL/EXE 中,可跨平台移植

    将可移植符号信息嵌入程序集。 不会生成任何外部 .PDB 文件。

有关详细信息,请参阅 /debug (C# 编译器选项)

请参阅