我试图设置一个 Ogre3D 应用程序,并将一个“OGRE_HOME”系统变量设置为 SDK 的主目录。$(OGRE_HOME)
然后我使用系统变量设置项目属性,例如项目属性中的包含目录。但是当我尝试编译应用程序时,编译器没有找到头文件,所以我不得不将 SDK 路径“硬编码”到项目属性中。
我首先使用setx
命令设置变量,然后尝试将其移至系统变量,但没有帮助。但是我没有尝试重新启动系统。
我试图设置一个 Ogre3D 应用程序,并将一个“OGRE_HOME”系统变量设置为 SDK 的主目录。$(OGRE_HOME)
然后我使用系统变量设置项目属性,例如项目属性中的包含目录。但是当我尝试编译应用程序时,编译器没有找到头文件,所以我不得不将 SDK 路径“硬编码”到项目属性中。
我首先使用setx
命令设置变量,然后尝试将其移至系统变量,但没有帮助。但是我没有尝试重新启动系统。
MSBuild确实扩展了环境变量。$(OGRE_HOME)
应该可以正常工作。
唯一的问题是 Visual Studio 会大量缓存这些环境变量的值,因此您所做的更改不会立即反映出来。
更改环境变量值的一般方法有两种,而这两种方法在 VS 中都会出错:
从命令行更改值只会影响从命令行启动的应用程序。由于您可能是通过资源管理器从快捷方式启动 VS,因此它不会继承新值。
通过计算机属性更改值应该正常工作,因为该对话框会广播一条全局消息,指示持久环境变量已更改。不幸的是,VS 似乎没有听取这些消息并更新其缓存。
但是,重新启动(或注销并重新启动)应该可以解决问题,因为这将导致 VS 刷新环境变量的值。
还值得注意的是,用户宏是环境变量的替代品。VS 2010 提供了一种通过 Property Manager 实现这些的非常强大的方法。您可以使用您的设置创建一个项目属性表,然后可以将其附加到多个项目,以便它们都将继承这些设置。它在 VS 之外不起作用,但如果你在那里完成所有的开发工作,它会非常方便。