0

我必须支持使用 VS 2010 和 VS 2012 的项目。即使 VS 2012 可以读取和编写可用于 VS 2010 的项目,也有理由(有时)更喜欢 VS2010,因为(例如)它支持安装项目和宏,而 VS2012 没有。此外,升级到 VS2012 将需要在客户端安装新的可再发行组件,这在任何情况下通常都不可能或无济于事(例如,Qt 4.8 仅提供与 VS 2010 可再发行组件链接的库)。

不幸的是,如果两个版本并排安装,似乎存在不兼容性:两者都设置为使用属性表,%LOCALAPPDATA%\Microsoft\MSBuild\v4.0但是当从任何一个版本的 VS 编写时,它们可能会变得不同。

例如,两个 VS 似乎都使用不同的变量来引用 Windows SDK 位置。只要不需要添加另一个包含文件目录或库文件夹,这实际上不是问题。在那之前,属性表根本不包含特定的设置,而是使用继承的值(在每个 VS 中都有效)。但是,一旦我为 Boost 添加了一些目录,继承的设置就会被复制到属性表中(例如分别包含$(WindowsSDK_IncludePath)or $(WindowsSdkDir)include)。现在 VS 2012 不理解 VS 2010 的那些位置变量,反之亦然。

这种情况导致以下问题:

  1. 我可以编辑继承的“来源”吗?目前,Visual Studio 2012 写入$(WindowsSDK_IncludePath)属性表,而 VS 2010 写入$(WindowsSdkDir)include. 库文件类似。另一个版本不能再包含像“windows.h”这样的文件了。好吧,可以手动“合并”文件,但这似乎不是“否则它找不到像Windows.h.
  2. 我怎样才能确定什么变量,例如$(WindowsSDK_IncludePath)$(WindowsSdkDir)扩展到什么?
  3. 如何自动更改用于新项目的属性表?我是否必须始终手动添加自己的属性表?如果可以做到,您可以为调试和发布模式提供不同的属性表,正如我读到的一个经常提到的要求。
  4. 将属性表添加到项目的最简单方法是什么?每次都必须通过“属性管理器”加载它似乎有点烦人。

  5. 4. 对于在版本控制中包含设置尤其重要。

4

0 回答 0