如何阻止VS2K10缓存环境变量

时间:2011-06-27 16:01:20

标签: c++ visual-studio-2010 msbuild

我正在使用第三方库为计算机游戏编写C ++扩展。由于针对此系统开发的每个人都可能在不同目录中具有头文件,因此它在其项目文件中使用环境变量来指向这些头文件所在的位置。

偶尔会发布新版本的库,我倾向于保留新版本和旧版本,以防我需要针对旧版本进行编译。

将环境变量更改为指向新版本的位置在Visual Studio 2008中完美运行。

将环境变量更改为指向新版本的位置是Visual Studio 2010中的一个巨大失败。

我尝试了以下所有方法:

  1. 使用setx更改cmd shell中的环境变量。
  2. 重新启动计算机
  3. 重新扫描解决方案
  4. 卸载并重新加载项目。
  5. 重新创建项目和解决方案文件。
  6. 这些都没有奏效。

    有没有办法防止VS2K10缓存环境变量?

3 个答案:

答案 0 :(得分:1)

Visual Studio在启动时加载环境变量,据我所知,但自VS2003以来我没有使用过环境变量。通常重启visual studio足以获取新的环境变量。如果情况并非如此,那么不使用环境变量进行项目配置是另一个论点。

备选方案#1:使用属性表

由于您在Visual Studio中,您可以使用属性表或一系列属性表来继承可分发给每个开发人员的项目设置,这些设置可用于定义不同构建,体系结构和常见包含的设置这样做通常意味着基于源控制树标准化开发环境。虽然他们可以在本地更新或下载源和库到不同的位置,但相对路径应该与通常基于源代码控制的属性表相同。

备选方案#2:使用专用的构建计算机。

设置一台机器来执行各种构建,并可能运行烟雾测试和其他自动化单元测试。这允许开发人员指定那里的环境,解决方案和项目,但是他们请他们只检查源文件。如果他们检查的源与构建机器环境不兼容,它应该能够发送带有附加输出的电子邮件,这样就可以很容易地将源代码管理的责备功能用于错误添加依赖项或其他任何内容的人。案件可能是。在这种环境中安排夜间构建是很常见的,以便在它们被埋没在进一步变化之前捕获新引入的错误。

那就是说我过去曾使用环境变量来包含特定版本的boost和其他库,并且结果很好,因为我是该办公室中唯一使用C ++的开发人员,只有一台需要环境的开发机器。当你有多个人修改多个东西时,你真的需要想出一些统一的方法来布局源代码,库和输出。

答案 1 :(得分:0)

事实证明,这可能是在该计算机上配置Visual Studio或Windows的方式。我的笔记本电脑的Visual Studio 2010安装没有出现同样的问题。

这台机器在上周晚些时候发生了严重的故障,我会在安装VS2010之后看看它的更换是否有同样的问题。

答案 2 :(得分:0)

我不知道如何阻止它,但缓存似乎存储在解决方案的.suo文件中。当我遇到同样的问题时,删除此文件删除了缓存的环境值。重新打开项目时,似乎会重新创建.suo文件。

想一想,我同时删除了vcproj.user文件。更好的核武器,以确保。 :)

希望这有帮助。