如何在Visual Studio 2019中更改%(DisableSpecificWarnings)
How to change %(DisableSpecificWarnings) in Visual Studio 2019
升级到VS 2019后,我试图通过禁用一些我不关心的警告(例如C26812(来使C++警告再次有用
我知道我可以转到每个项目的属性页面并将此字符串添加到"禁用特定警告"中,但那将重复太多(我有很多项目(。因此,我正在尝试更改所有项目通用的禁用特定警告变量:4996;6031;%(禁用特定警告(
如何在Visual Studio 2019中更改此全局变量?
对于任何感兴趣的人,我最终创建了一个跨项目共享的 GLOBAL.props 文件。
要添加此工作表,请选择项目转到"属性管理器",选择项目并执行"添加现有属性表"。例如,此处定义了所有子项目使用的禁用特定警告。有关编译和链接属性的详细信息,请参阅 MSBuild 文档:
编译:https://learn.microsoft.com/en-us/visualstudio/msbuild/cl-task?view=vs-2019
链接: https://learn.microsoft.com/en-us/visualstudio/msbuild/link-task?view=vs-2019
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<ItemDefinitionGroup>
<ClCompile>
<DisableSpecificWarnings>4675;4541;4702;4267;4996;26812;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
项目默认值来自多个.props
文件,按范围、语言和平台进行组织。这些.props
文件的位置(甚至存在(在不同版本之间发生了变化,并且可能取决于VS 2019之前安装的过去版本的历史记录。
识别实际使用的默认.props
的一种(更安全(方法是创建一个新的C++项目并查看生成的.vcxproj
文件中的<Import Project ... />
行。例如,我在我的机器上得到以下内容,按特异性递增顺序排列。
<Import Project="$(VCTargetsPath)Microsoft.Cpp.Default.props" />
<Import Project="$(VCTargetsPath)Microsoft.Cpp.props" />
<Import Project="$(UserRootDir)Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
最后一个应该是最具体的,带有每个用户的每个平台设置。它似乎不再使用新的VS 2019安装创建,但它是从以前的版本继承而来的,并且在存在时仍然可以识别(例如,请参阅缺少Microsoft.Cpp.Win32.user.props文件(。
要查看"$(UserRootDir)Microsoft.Cpp.$(Platform).user.props"
展开的内容,请打开项目设置并假装更改配置中的任何可编辑路径,然后单击下拉菜单中的Edit
并将.props
路径粘贴到编辑框中。实际路径将显示在其正下方,例如C:Users<user name>AppDataLocalMicrosoftMSBuildv4.0Microsoft.Cpp.Win32.user.props
.
在磁盘上找到该文件,如果该文件尚不存在,则创建该文件,然后在"Project/ItemDefinitionGroup/ClCompile
"下插入以下内容。
<DisableSpecificWarnings>26812;%(DisableSpecificWarnings)</DisableSpecificWarnings>
如果.props
文件不存在,并且您必须从头开始创建它,则完整的文件将是:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
<ClCompile>
<DisableSpecificWarnings>26812;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
</ItemDefinitionGroup>
</Project>
要修改每台计算机的默认值,而不是每用户的默认值,请按照相同的步骤操作,但改用其中一个$(VCTargets)
文件。
- 没有找到相关文章