让vc2010的项目在vc2012也能直接使用,而不必修改PlatformToolSet

时间:2022-06-27 13:22:31

在Visual Studio 2010新建的项目到2012里打开会要求修改PlatformToolset的值,从v100改为v110。如果这个项目需要进版本管理(VCS,如git, svn),这将造成一点小麻烦。两头要么忽略这个变更,要么互相覆盖。

最近实验了一种方案,可以保持项目在这两种环境下一致。只需要新建一个内容如下的属性表(.props文件):

 <?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>
<PlatformToolset Condition="'$(DefaultPlatformToolset)' != ''">$(DefaultPlatformToolset)</PlatformToolset>
</PropertyGroup>
<ItemDefinitionGroup />
<ItemGroup />
</Project>

然后在vc的属性管理器中为项目添加这个使用它即可。

由于DefaultPlatformToolset变量在2010中没有,所以需要用Condition区别一下。

目前只测试了2010和2012的兼容,估计2013也能兼容,谁有环境麻烦测试一下留言告知。