在Visual Studio 2010中编辑$(IncludePath)“宏”

24

Visual Studio 2010(“项目属性”对话框)

我已安装 Visual Studio 2010 Ultimate,并且它似乎导入了我的 Win32 C++ 包含文件和库的默认目录。每次创建新的 Win32 C++ 项目时,自动添加我的旧包含文件/库目录,这会导致构建失败。

因此我有一个问题:如何在 Visual Studio 2010 中编辑$(IncludePath)

或者 $(IncludePath) 是特定于该项目的吗?只是“从父级或项目默认值继承”的结果?(如果是这种情况,则问题变成:如何编辑项目默认值,因为在 Visual Studio 选项中它似乎已被弃用)

谢谢!

注意:在 Windows 中未定义 %include% 环境变量。如果在 VS2010 命令提示符中输入“echo %include%”,它会出现,但它不是我想要摆脱的屏幕截图中的值。

2个回答

32
在VS2010中,这些路径是在一个或多个“属性表”中指定的(有关相应更改的讨论可以在VS项目团队博客上找到相关文章)。 您可以自己按项目添加这些路径,但该项目还包括一个指定所有默认值的路径。
在我的系统中,它位于C:\Users\\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props。
您可以通过打开属性管理器窗口(查看->其他窗口->属性管理器),然后双击属性表来访问它。您还可以从此窗口自己添加属性表(这将优先于默认属性表)。
删除对Microsoft.Cpp.Win32.user.props的引用也是完全合法的。如果您需要确保项目完全自包含,即不从环境中获取包含路径,那么这将非常有用。然后,您只需在项目本身或作为项目一部分的自定义属性表中指定路径(推荐以便于重用)。

1
+1 - 这确实是在升级到VS2010时容易被忽视的重要信息/更改;我添加了一篇文章的链接,解释了这些更改,特别是为什么这是一个重要且长期拖延的举措,以便为VC++提供一个体面的自包含构建环境,例如用于持续集成等。虽然转换较大的项目可能会很烦人且耗时,但这是一次性的更改,为了在团队和系统之间获得更一致的构建而付出的努力是值得的。 - Steffen Opel
是的,我喜欢他们做出了这个改变...虽然他们本可以让它更易于访问。如果你没有提前知道答案,这不是一件容易理解的事情。 - jalf
今晚我会检查一下,但听起来这正是我要找的东西... 如果是的话,我会标记为已接受。 - Adam

3
  1. 在VS2010中,VC++目录是项目特定的。与VS2008不同,没有全局设置。
  2. 有一个INCLUDE环境变量对应于$(IncludePath),首先检查它。
  3. 以前,VS将所有全局设置保存在Documents and Settings\\Local Settings\\Application Data\\Microsoft\\VisualStudio\\VCComponents.dat中,因此如果所有VS版本都存在该文件,请尝试删除。我在VS2010中没有这样的文件,但在您的情况下检查一下是值得的。

希望这可以帮到你。


有人已经建议可能是%include%环境变量,然后在我告诉他%include%未定义后删除了他的答案(我应该将此添加到实际问题本身)。 - Adam
关于“VCComponents.dat”,它存在于\VisualStudio\9.0\目录下(即VS2008),但不存在于\VisualStudio\10.0\目录下(即VS2010)。我检查了VS2008的内容,发现它与上述数值不同。 - Adam

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