Visual Studio属性表中的平台工具集属性

8
<PlatformToolset/> 属性没有通过项目属性表暴露出来。这很不幸,因为如果您要升级编译器(在我的情况下是到VS 2013),我必须运行几个分布在多个解决方案上的项目来更改此值。
我可以编写一个脚本或小程序,可以打开 vcxproj 文件,将它们视为 xml 并在所有策略位置插入此属性,但这对我来说似乎有些杂乱无章。
这里推荐的方法是什么?

当您将项目加载到新版本的Visual Studio中时,它(通常)会提示您将项目升级到新版本。因为这可能不仅仅是更改PlatformToolSet标记,所以我建议这样做。 - MuertoExcobito
@MuertoExcobito 这对于使用较新版本IDE编译旧版本编译器的人是行不通的。我非常确定更改PlatformToolset属性就足够了,一切似乎都从那里开始。 - ForeverLearning
您必须安装旧版IDE才能使用旧版PlatformToolSet进行编译,因此最好直接使用旧版IDE。我们支持许多不同版本的VS,并为每个版本维护项目文件。 - MuertoExcobito
2个回答

1
你可以使用你的设置插入文件引用。
<Import Project="FILEWITHTOOLSETSETTINGS.props" />

前面的行:

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

它不是 Visual Studio 中的属性表,但它可以工作。

0

我尝试了上述解决方案,但如果vcxproj文件中定义了platformtoolset版本,则无法正常工作,并将使用在项目中指定的platformtoolset。

最终我删除了2100个项目文件中的所有platformtoolset定义。我一直在思考是否应该只创建一个产品平台工具集属性,并在项目中将平台工具集设置为此属性。

我对项目进行了自动编辑,因为我需要修复其他属性和构建项。自动化并不难。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接