如何在Visual Studio 2019中更改%(DisableSpecificWarnings)

How to change %(DisableSpecificWarnings) in Visual Studio 2019

本文关键字:DisableSpecificWarnings Visual Studio 2019      更新时间:2023-10-16

升级到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)文件。

相关文章:
  • 没有找到相关文章