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:5001http://localhost:5000

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

设置 描述
托管模型 指定进程内(默认值)或进程外。 有关详细信息,请参阅 ASP.NET Core 中的托管模型
应用 SSL URL 对于 IIS Express,通常 应用程序的 SSL URLhttp://localhost:44334.

“生成”选项卡

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

设置 描述
常规>条件编译符号 如果选择了 DEBUG 和 TRACE 常量,则定义该常量。

这些常量允许 Debug 类 条件编译,Trace 类。 定义这些常量后,Debug 和 Trace 类方法将生成输出到 输出窗口。 如果没有这些常量,则不编译 Debug 和 Trace 类方法,也不会生成任何输出。

通常,DEBUG 是在生成调试版本中定义的,在发布版本中未定义。 TRACE 在调试和发布版本中定义。
常规>优化代码 除非 bug 仅在优化代码中出现,否则对调试版本保持此设置未选中。 优化代码难以调试,因为指令不直接对应于源代码中的语句。
调试符号 指定编译器生成的调试信息的类型。 请参阅调试符号。 有关如何配置应用程序的调试性能的信息,请参阅令映像更易于调试
输出>基本输出路径 指定中间输出的基文件夹。 输出通常存储在 bin\Debug 目录,用于调试版本。
输出>基本中间输出路径 指定中间输出的基文件夹。 调试构建的输出通常转入 obj\Debug

调试符号

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

  • 未发出任何符号

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

  • PDB 文件,当前平台

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

  • PDB 文件,可移植

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

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

    将可移植符号信息嵌入程序集。 没有生成外部 PDB 文件。

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

另请参阅