高级属性页
Visual Studio 2019 及更高版本中提供“高级”属性页。 若要查看此版本对应的文档,请将本文的 Visual Studio“版本”选择器控件设置为“Visual Studio 2019”。 它位于此页面上目录表的顶部。 在早期版本的 Visual Studio 中,以下属性显示在“常规”属性页上:
Visual Studio 2019 及更高版本中提供“高级”属性页。 显示的具体属性取决于项目类型。 Windows 运行时(通用 Windows 平台,简称 UWP)项目不显示此页面。
高级属性
目标文件扩展名
指定要用于生成输出的文件扩展名。 应用程序默认为 .exe
,静态库默认为 .lib
,DLL 默认为 .dll
。
清除时要删除的扩展名
“生成”>“清理”菜单命令从生成项目的配置的中间目录中删除文件。 生成系统会在你运行“清理”命令或重新生成时删除具有指定扩展名的文件。 生成系统还会删除生成的任何已知输出,无论该输出位于何处。 已删除的文件包括任何中间输出,如 .obj
文件。 使用分号 (;
) 分隔扩展名。 你可以在扩展名中指定通配符(*
或 ?
)。
若要以编程方式访问此属性,请参阅 DeleteExtensionsOnClean。
生成日志文件
允许你指定生成项目时创建的日志文件的非默认位置。 默认位置由宏 $(IntDir)$(MSBuildProjectName).log
指定。
可使用项目宏来更改目录位置。 有关详细信息,请参阅用于生成命令和属性的常用宏。
首选的生成工具体系结构
指定是使用 x86 生成工具还是 x64 生成工具。
使用调试库
指定是创建调试生成还是发布生成。 尽管名称如此,但“使用调试库”是特定于生成系统的属性,该属性实际上是“生成调试版本”或“生成发布版本”的简写。 它为调试或发布版本设置多个编译器和链接器属性,包括库设置。 可以使用它为新平台或在新模板中创建调试或发布配置。 不建议在现有配置中更改此属性。 请改用单个编译器和链接器属性。
启用 Unity (JUMBO) 生成
在编译之前,启用更快的生成过程,将许多 C++ 源文件合并到一个或多个文件中。 这些组合文件称为 unity 文件。 它们与 Unity 游戏引擎无关。
将内容复制到 OutDir
将项目中标记为“内容”的项复制到项目的输出目录 ($(OutDir)
)。 此设置可以简化部署。 此属性自 Visual Studio 2019 版本 16.7 起可用。
将项目引用复制到 OutDir
将可执行文件(DLL 和 EXE 文件)项目引用项复制到项目的输出目录 ($(OutDir)
)。 在 C++/CLI (/clr
) 项目中,此属性会被忽略。 改由每个项目引用上的“复制本地”属性控制是否将它复制到输出目录。 此设置可以简化本地部署。 自 Visual Studio 2019 版本 16.7 起可用。
将项目引用的符号复制到 OutDir
将项目引用项的 PDB 文件以及项目引用可执行文件项复制到项目的输出目录 ($(OutDir)
)。 始终为 C++/CLI 项目启用此属性。 此设置可以简化调试部署。 自 Visual Studio 2019 版本 16.7 起可用。
将 C++ 运行时复制到 OutDir
将运行时 DLL 复制到项目的输出目录 ($(OutDir)
)。 此设置可以简化本地部署。 自 Visual Studio 2019 版本 16.7 起可用。
MFC 的使用
指定 MFC 项目是静态还是动态链接到 MFC DLL。 对于非 MFC 项目,请选择“使用标准 Windows 库”。
若要以编程方式访问此属性,请参阅 useOfMfc。
字符集
指定是应设置 _UNICODE
还是 _MBCS
预处理器宏。 在相应的情况下,还会影响链接器入口点。
若要以编程方式访问此属性,请参阅 CharacterSet。
全程序优化
指定 /GL
编译器选项和 /LTCG
链接器选项。 默认情况下,此属性对于调试配置是禁用的,对于发布配置是启用的。
MSVC 工具集版本
指定用于生成项目的 MSVC 工具集的完整版本。 你可能安装了各种更新版和预览版工具集。 可以指定此处要使用的版本。
LLVM 工具集版本
指定用于生成项目的 LLVM 工具集的完整版本。 从 Visual Studio 2019 版本 16.9 开始,将“LLVM (clang-cl)”选择为平台工具集时,此属性就可用。 有关详细信息,请参阅设置自定义 LLVM 工具集版本。
启用 MSVC 结构化输出
指定是否启用结构化 SARIF 输出,这将在 Visual Studio 的“输出”窗口中启用“问题详细信息”窗口和分层输出。
C++/CLI 属性
公共语言运行时支持
导致将使用 /clr
编译器选项。
若要以编程方式访问此属性,请参阅 ManagedExtensions。
.NET 目标框架版本
仅当“公共语言运行时支持”属性设置为“.NET Framework 运行时支持”时,此属性才适用,即项目面向 .NET Framework,并指定 .NET Framework 的版本。
.NET 目标框架
仅当“公共语言运行时支持”属性设置为“.NET 运行时支持”时,此属性才适用,即项目面向 .NET。
此属性指定此项目面向的 .NET 5+ 目标框架名字对象,例如 net6.0-windows
或 net7.0-windows8.0
。
启用托管增量生成
对于托管项目,使用此选项就可以在生成程序集时检测外部可见性。 如果某个托管项目的更改对其他项目不可见,则不重新生成依赖项目。 在包括托管项目的解决方案中,托管增量生成可以显著改善生成时间。
为单个文件启用 CLR 支持
此选项设置一个 ManagedAssembly
生成属性,该属性仅允许将项目中的某些文件生成为托管代码。 如果将部分而不是所有项目文件都生成为托管代码,则必须将“为单个文件启用 CLR 支持”设置为“是”。 此属性仅适用于在 Visual Studio 2022 及更高版本中使用 v143 或更高版本的工具集的项目。
.NET 目标 Windows 版本
仅当“公共语言运行时支持”属性设置为“.NET 运行时支持”时,此属性才适用,即项目面向 .NET。
此属性指定项目支持的最低 Windows 版本。 NuGet 使用此值来确定项目和 NuGet 包依赖项的兼容性。 如果项目 A 依赖于项目 B,则项目 A 的 .NET 目标 Windows 版本必须大于或等于项目 B 的。