.NET 项目设计器 (C#)

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

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

注意

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

应用程序、常规设置

以下选项用于配置应用程序的常规设置。

输出类型

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

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

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

目标框架

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

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

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

注意

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

有关详细信息,请参阅框架定位概述

目标 OS

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

启动对象

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

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

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

程序集名称

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

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

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

默认命名空间

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

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

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

应用程序,Win32 资源设置

图标

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

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

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

资源

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

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

Manifest

当应用程序在 Windows 上以用户帐户控制 (UAC) 模式运行时,选择一个清单生成选项。 此选项可以采用以下值:

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

  • 创建不带清单的应用程序。 此方法称为虚拟化。 若要与早期的应用程序兼容,则使用此选项。

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

全局 Usings 设置

隐式全局使用

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

管理隐式全局使用

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

生成、常规设置

“条件编译符”

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

调试自定义符号

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

发布自定义符号

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

目标平台

指定将作为输出文件目标的处理器。 对于任何 32 位 Intel 兼容处理器,请选择“x86”;对于任何 64 位 Intel 兼容处理器,请选择“x64”;对于 ARM 处理器,请选择“ARM”;或选择“任何 CPU”指定可接受任何处理器。 “任何 CPU”是项目的默认值,因为这允许在最广泛的硬件上运行应用程序。

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

可以为 Null

指定项目范围内可以为 null 的 C# 上下文。 此 UI 选项是在 Visual Studio 16.5 中引入的,并且仅适用于使用 C# 8.0 或更高版本的项目。

有关详细信息,请参阅可以为 null 的上下文

生成程序集信息

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

不安全代码

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

优化代码

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

调试符号

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

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

  • full

    允许将调试器附加到正在运行的程序。

  • pdbonly

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

  • portable

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

  • embedded

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

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

生成、错误和警告设置

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

警告级别

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

抑制特定警告

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

将警告视为错误

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

将特定警告视为错误

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

提示

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

生成、输出设置

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

基本输出路径

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

使用简化的生成配置,项目系统可确定是生成调试版本还是发行版本。 使用“调试”菜单 (F5) 中的“生成”命令,会将生成放置在调试位置中(无论指定的“输出路径”为何)。 但是,“生成”菜单上的“生成”命令会将其放在指定的位置。 有关详细信息,请参阅了解生成配置

引用程序集

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

文档文件

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

生成、事件设置

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

生成、发布设置

发布

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

发布剪裁

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

发布本机 AOT

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

生成,强命名设置

对程序集签名

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

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

强名称密钥文件 列表

使你可以指定一个新的或现有强名称密钥文件,用来对程序集签名。 选择“<浏览...>”以选择现有的密钥文件。

仅延迟符号

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

请注意,延迟签名的项目将不会运行,也不能调试。 但是,可以使用 Sn.exe(强名称工具)-Vr 选项,在开发过程中跳过验证。

注意

对程序集签名时,可能并不总是有权访问私钥。 例如,一个组织可能具有开发人员不是每天都能访问的严密保护密钥对。 公钥可能可用,但私钥的访问权限仅限于少数几个人。 在这种情况下,你可以使用延迟或部分签名来提供公钥,将私钥的添加延迟到转交该程序集后。

生成、高级设置

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

语言版本

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

检查算法溢出

指定不在 checkedunchecked 关键字范围内且生成的值超出数据类型范围的整数算法语句是否会导致运行时异常抛出。 有关详细信息,请参阅 /checked(C# 编译器选项)

具有确定性

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

内部编译器错误报告

指定是否向 Microsoft 报告编译器错误。 如果设置为“提示”(默认),则在发生内部编译器错误时将收到提示,可以选择向 Microsoft 发送电子版错误报告。 如果设置为“发送”,则将自动发送错误报告。 如果设置为“队列”,则错误报告将排入队列。 如果设置为“无”,将仅在编译器的文本输出中报告错误。 有关详细信息,请参阅 /errorreport(C# 编译器选项)

文件对齐

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

包、常规设置

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

程序包、许可证设置

包许可证

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

包、符号设置

生成符号包

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

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

在生成时运行

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

在实时分析时运行

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

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

在生成时强制执行代码样式

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

启用 .NET 分析器

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

分析级别

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

调试、常规设置

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

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

资源、常规设置

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

另请参阅

改进的项目属性 UI