如何在 VS2017 中禁用“警告 MSB8051:不支持针对 Windows XP 的支持”?
Posted
技术标签:
【中文标题】如何在 VS2017 中禁用“警告 MSB8051:不支持针对 Windows XP 的支持”?【英文标题】:How to disable "warning MSB8051: Support for targeting Windows XP is deprecated" in VS2017? 【发布时间】:2018-12-18 21:38:25 【问题描述】:由于 Visual Studio 2017 的最新更新之一,我在构建 MFC 项目期间开始收到以下警告:
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Platforms\x64\PlatformToolsets\v141_xp\Toolset.targets(39,5): 警告 MSB8051:不推荐使用针对 Windows XP 的支持,并且 将不会出现在 Visual Studio 的未来版本中。请参见 https://go.microsoft.com/fwlink/?linkid=2023588 了解更多信息。
如何禁用此警告?
这是项目配置:
【问题讨论】:
搜索“抑制 msbuild 警告”。 @zett42:我只能找到is this,但这个答案并不完整。我不明白他是怎么跳出"Common Properties"->"User Macros"
【参考方案1】:
将此添加到您的 .vcxproj 文件中,或者添加到现有的 PropertyGroup 或它自己的一个中。
<PropertyGroup>
<XPDeprecationWarning>false</XPDeprecationWarning>
</PropertyGroup>
或通过命令行
msbuild [project file] /p:XPDeprecationWarning=false
另一种可能性是转到您的“属性管理器”窗口并将“添加新属性表...”添加到您的项目中。右键单击新工作表并选择“通用属性”->“用户宏”->“添加宏”并使用名称 XPDeprecationWarning 和值 false。遗憾的是,您不能只在您的项目上执行此操作,因为 Visual Studio 不允许您使用 GUI 来编辑根项目文件上的 UserMacros(我一直想知道为什么文件中存在节点)。
这些都应该做完全相同的事情,所以如果一个不适合你,那么我不确定为什么其他任何一个会更成功。
【讨论】:
谢谢,我添加了它as such,但它对那个警告没有影响。 @c00000fd 这在文件中可能为时过早。项目文件包括几个常见的属性表 (*.props),它们可能会覆盖设置。试着把它放在这些包括之后。 @zett42:我做的第一件事,我把它放在最后,也没有得到任何东西。或者,我应该将它嵌套在ItemGroup
标签内吗?
我刚刚添加到我的项目顶部,正如您在 png 中显示的那样,它似乎按预期工作。如果您跳转到有问题的目标文件,您可以看到有问题的行。 %LocalAppData%\Microsoft\MSBuild\v4.0\Microsoft.Cpp.user.props
中输入这个,为你的所有项目去掉它。【参考方案2】:
对于那些使用单独的属性表(在视图 --> 其他窗口 --> 属性管理器中找到)将多个项目的属性组合到一个文件中的人,我的文件是 AllCommon.props
,我能够添加替换 null <PropertyGroup />
与
<PropertyGroup>
<XPDeprecationWarning>false</XPDeprecationWarning>
</PropertyGroup>
所以整个属性文件现在看起来像:
<?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>
<XPDeprecationWarning>false</XPDeprecationWarning>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<AdditionalIncludeDirectories>..\MyCommonLibrary</AdditionalIncludeDirectories>
<CallingConvention>StdCall</CallingConvention>
<TreatWarningAsError>true</TreatWarningAsError>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
这行得通,奇怪的是我不必对用户宏做任何事情。该文件必须手动编辑,因为我还没有找到使用 GUI 进行编辑的方法。
【讨论】:
以上是关于如何在 VS2017 中禁用“警告 MSB8051:不支持针对 Windows XP 的支持”?的主要内容,如果未能解决你的问题,请参考以下文章
使用 VS 2015 构建 QtWebEngine 5.8 时如何禁用 Windows 10 功能?