.NET 项目设计器

使用 项目设计器 指定 .NET Core 和 .NET 5+ 的项目设置和属性。 对于 .NET Framework,请参阅 什么是 .NET 项目设计器?

若要访问项目设计器,请在 解决方案资源管理器中选择项目节点(而不是 解决方案 节点)。 然后选择菜单栏上 Project>属性。 将显示 项目设计器

注意

您的计算机可能会显示本文中某些 Visual Studio 用户界面元素的不同名称或位置。 你可能使用的是不同版本的 Visual Studio 或不同的环境设置。 有关详细信息,请参阅 个性化 IDE

应用程序、常规设置

通过以下选项,可以配置应用程序的常规设置。

输出类型

指定要生成的应用程序的类型。 值因项目类型而异。 例如,对于 控制台应用 项目,可以指定 Windows 应用程序控制台应用程序类库 作为输出类型。

有关 输出类型 属性的详细信息,请参阅 /target (C# 编译器选项)

有关如何以编程方式访问此属性的信息,请参阅 OutputType

Target Framework

指定应用程序面向的 .NET 版本。 此选项可以具有不同的值,具体取决于计算机上安装的 .NET 版本。

对于面向 .NET Core 或 .NET 5+ 的项目,可用版本可能如下所示:

Visual Studio 2022 中 .NET Core 项目的目标框架版本的屏幕截图。

注意

对于 ClickOnce 应用程序,先决条件对话框中列出的必备组件包 是在首次打开对话框时自动设置的。 如果随后更改项目的目标框架,则必须手动选择先决条件以匹配新的目标框架。

有关详细信息,请参阅 框架目标概述

目标 OS

指定项目将面向的操作系统。 结合目标框架,这将生成 .NET 5+ 特定于 OS 的 TF

Startup 对象

定义应用程序加载时要调用的入口点。 通常,此设置为应用程序中的主窗体或应用程序启动时应运行的 Main 过程。 由于类库没有入口点,因此此属性的唯一选项是 (未设置)

默认情况下,在 WPF 应用项目中,此选项设置为 (未设置)。 另一个选项是 [projectname].App。 在 WPF 项目中,必须在应用程序启动时设置启动 URI 以加载 UI 资源。 为此,请在项目中打开 Application.xaml 文件,并将 StartupUri 属性设置为项目中的 .xaml 文件,例如 Window1.xaml。 有关可接受的根元素的列表,请参阅 StartupUri。 还必须在项目中的类中定义 public static void Main() 方法。 此类将在 Startup 对象 列表中显示为 projectName.ClassName 。 然后,可以选择类作为启动对象。

有关详细信息,请参阅 /main (C# 编译器选项)。 若要以编程方式访问此属性,请参阅 StartupObject

程序集名称

指定将保存程序集清单的输出文件的名称。 更改此属性也会更改 输出名称 属性。

也可以使用 /out (C# 编译器选项)从命令行进行此更改。

若要以编程方式访问此属性,请参阅 AssemblyName

默认命名空间

指定添加到项目中的文件的基本命名空间。

有关在代码中创建命名空间的详细信息,请参阅 命名空间

若要以编程方式访问此属性,请参阅 RootNamespace

应用程序,Win32 资源设置

图标

设置要用作程序图标的 .ico 文件。 单击 浏览 浏览现有图形,或键入所需文件的名称。 有关详细信息,请参阅 /win32icon (C# 编译器选项)

若要以编程方式访问此属性,请参阅 ApplicationIcon

有关创建图标的信息,请参阅 图标的图像编辑器。

资源

资源 选项可帮助配置应用的资源设置。 默认情况下,图标清单 选项处于启用状态。 这使你可以选择自己的图标或选择不同的清单生成选项。 除非为项目提供资源文件,否则请保持选中此单选按钮。

如果选择 资源文件,请为项目配置资源文件。 输入路径名称或使用“浏览”按钮将 Win32 资源文件添加到项目。 有关详细信息,请参阅 为 .NET 应用创建资源文件

清单

在用户帐户控制(UAC)下的 Windows 上运行应用程序时,选择清单生成选项。 此选项可以具有以下值:

  • 嵌入带有默认设置的清单。 支持在 Windows 上运行 Visual Studio 的典型方式,即在应用程序的可执行文件中嵌入安全信息,并指定 requestedExecutionLevelAsInvoker。 这是默认选项。

  • 创建没有清单的应用程序。 此方法称为 虚拟化。 使用此选项与早期应用程序兼容。

  • 使用自定义清单。 允许输入路径或浏览到项目的自定义清单。

全局 Usings 设置

使用 隐式全局

启用或禁用 全局使用,这样就可以使用命名空间中定义的类型,而无需指定完全限定的命名空间。

管理隐式全局使用

手动添加和删除全局用法,以便在项目中使用。

生成、常规设置

条件编译符号

指定要对其执行条件编译的符号。 用分号(“;”)分隔符号。 有关详细信息,请参阅 /define (C# 编译器选项)

调试自定义符号

为调试生成指定条件编译的符号。 默认调试符号显示在字符串中,用分号分隔。

发布自定义符号

为发布版本指定条件编译的符号。 默认发布符号显示在字符串中,用分号分隔。

平台目标

指定要由输出文件面向的处理器。 为任何兼容 32 位 Intel 的处理器选择 x86,为任何 64 位 Intel 兼容处理器选择 x64,为 ARM 处理器选择 ARM,或选择 任何 CPU 来指定任何处理器是可接受的。 任何 CPU 都是项目的默认值,因为它允许应用程序在最广泛的硬件上运行。

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

可为空的

指定项目范围的 C# 可为 null 上下文。 Visual Studio 16.5 中引入了此 UI 选项,并且仅针对使用 C# 8.0 或更高版本的项目启用。

有关详细信息,请参阅 可为空上下文

生成程序集信息

指定是否 包相关的项目属性 转换为程序集属性。 有关详细信息,请参阅 GenerateAssemblyInfo 属性。

不安全代码

允许使用 不安全 关键字编译的代码。 有关详细信息,请参阅 /unsafe (C# 编译器选项)

优化代码

启用或禁用编译器执行的优化,使输出文件更小、更快、更高效。 有关详细信息,请参阅 /optimize (C# 编译器选项)

调试符号

指定编译器生成的调试信息的类型。 有关如何配置应用程序的调试性能的信息,请参阅 DebugType 编译器选项。 此设置具有以下选项:

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

  • 完整

    启用将调试器附加到正在运行的程序。

  • pdbonly

    允许在调试器中启动程序时进行源代码调试,但仅在正在运行的程序附加到调试器时显示汇编程序。

  • 便携式

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

  • 嵌入式

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

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

生成、错误和警告设置

以下设置用于为生成过程配置错误和警告选项。

警告级别

指定要为编译器警告显示的级别。 有关详细信息,请参阅 /warn (C# 编译器选项)

禁止显示特定警告

阻止编译器生成一个或多个特定警告的能力。 用逗号或分号分隔多个警告编号。 有关详细信息,请参阅 /nowarn (C# 编译器选项)

将警告视为错误

选择在生成过程中是否将警告视为错误。 有关详细信息,请参阅 /warnaserror (C# 编译器选项)

将特定警告视为错误

指定将哪些警告视为错误。 用逗号或分号分隔多个警告编号。

提示

如果不希望将代码分析警告视为错误,请参阅 代码分析常见问题解答

生成、输出设置

以下设置用于配置生成过程的输出选项。

基本输出路径

指定此项目的配置的输出文件的位置。 在此框中输入生成输出的路径,或选择 “浏览”按钮来指定路径。 路径相对;如果输入绝对路径,它将保存为相对路径。 默认路径为 bin\Debug 或 bin\Release\。

使用简化的生成配置,项目系统确定是生成调试版本还是发布版本。 “生成” 命令将从 “调试”菜单(F5)将生成置于调试位置,而不考虑你指定的 输出 路径。 但是,“生成”菜单中的“生成” 命令将其置于指定的位置。 有关详细信息,请参阅 了解生成配置

引用程序集

指定是否生成包含项目公共 API 的 引用程序集

文档文件

指定将处理文档注释的文件的名称。 有关详细信息,请参阅 /doc (C# 编译器选项)

生成、事件设置

有关生成事件设置的信息,请参阅 指定生成事件 (C#)

生成、发布设置

发布

允许 MSBuild 发布目标运行。 有关详细信息,请参阅 MSBuild IsPublishable 属性。

发布剪裁的

指定是否在发布过程中启用剪裁。 有关详细信息,请参阅 剪裁相关的属性

发布本机 AOT

指定是否生成自包含且已预先编译为本机代码的应用。 有关详细信息,请参阅 本机 AOT 部署

生成,强命名设置

对程序集进行签名

选中此复选框可对程序集进行签名,并创建一个具有强名称的密钥文件。 有关使用 项目设计器对程序集进行签名的详细信息,请参阅 如何:对程序集进行签名(Visual Studio)。 有关详细信息,请参阅 强命名程序集

此选项使用 Windows 软件开发工具包 (SDK) 提供的 Al.exe 工具对程序集进行签名。 有关 Al.exe的详细信息,请参阅 如何:使用强名称对程序集进行签名

强名称密钥文件 列表

使你能够指定用于对程序集进行签名的新密钥文件或现有的强命名密钥文件。 选择 <“浏览...”> 以选择现有密钥文件。

延迟符号

选中此复选框可启用延迟签名。 有关详细信息,请参阅 延迟签名程序集

请注意,延迟签名的项目不会运行且无法调试。 但是,可以使用 Sn.exe(强名称工具)-Vr 选项来跳过开发期间的验证。

注意

对程序集进行签名时,可能并不总是有权访问私钥。 例如,组织可能有一个严密保护的密钥对,开发人员每天无权访问这些密钥对。 公钥可能可用,但对私钥的访问仅限于少数个人。 在这种情况下,可以使用 延迟部分签名 提供公钥,延迟添加私钥,直到程序集移交为止。

生成、高级设置

通过以下选项可以设置高级生成设置。

语言版本

指向 /langversion (C# 编译器选项)的链接,该链接提供有关如何基于项目的目标框架选择默认语言版本的信息。

检查算术溢出

指定不在选中 范围内的整数算术语句,还是 未选中的 关键字,并且导致数据类型范围之外的值将导致运行时异常。 有关详细信息,请参阅 /checked (C# 编译器选项)

确定性

指定是否从同一输入源生成字节 for-byte 等效输出。 有关详细信息,请参阅 控制代码生成的 C# 编译器选项。

内部编译器错误报告

指定是否将编译器错误报告给Microsoft。 如果设置为 提示(默认值),则当发生内部编译器错误时,你将收到提示,从而可以选择以电子方式发送错误报告以Microsoft。 如果设置为 发送,将自动发送错误报告。 如果设置为 队列,则错误报告将排队。 如果设置为 ,则只会在编译器的文本输出中报告错误。 有关详细信息,请参阅 /errorreport (C# 编译器选项)

文件对齐

指定输出文件中节的大小。 有效值为 5121024204840968192。 这些值以字节为单位。 每个部分都将在此值的倍数的边界上对齐,从而影响输出文件的大小。 有关详细信息,请参阅 /filealign (C# 编译器选项)

包、常规设置

本部分中的属性用于配置包,通常对应于 NuGet .nuspec 文件中的属性。 有关详细信息,请参阅 .nuspec 文件

程序包、许可证设置

程序包许可证

指定是将许可证表达式还是许可证文件包含在包中。 有关详细信息,请参阅 许可证 元素。

包、符号设置

生成符号包

指定是否创建用于调试的符号包。 有关详细信息,请参阅 创建符号包(.snupkg)

代码分析,所有分析器设置

在生成 上运行

指定生成项目时是否运行源代码分析。 有关详细信息,请参阅 禁用 .NET的源代码分析。

在实时分析 上运行

指定生成项目时是否运行实时源代码分析。 有关详细信息,请参阅 禁用 .NET的源代码分析。

代码分析、.NET 分析器设置

在生成 上强制实施代码样式

指定生成项目时是否报告 .NET 代码样式冲突。 有关详细信息,请参阅 在生成上强制实施代码样式。

启用 .NET 分析器

启用或禁用 .NET 编译器平台(Roslyn)分析器。 有关详细信息,请参阅 启用或安装第一方 .NET 分析器

分析级别

指定要在项目中运行的分析器集。 有关详细信息,请参阅代码分析概述文章中的 最新更新 部分。

调试、常规设置

选择链接以打开调试启动配置文件 UI。 通过此 UI,可以添加和配置调试时要使用的不同配置文件。 每个配置文件名称在 “开始调试” 列表中显示为“开始”选项。

对于 ASP.NET 核心项目,启动配置文件 UI 中的设置对应于项目的 launchSettings.json 文件中的设置。 有关如何在 ASP.NET 开发中使用此文件的详细信息,请参阅 开发和 launchSettings.json

资源、常规设置

选择链接以打开 RESX 程序集资源文件。 有关详细信息,请参阅“设置”页,项目设计器

另请参阅

改进的项目属性 UI