如何将 'RAD Studio Command Prompt' 与环境变量一起使用?
How to use 'RAD Studio Command Prompt' with environment variables?
我的项目在输出路径中使用了环境变量,即 $(MY_PROJECTS)\MyPackage
(在 Project -> Options -> Delphi Compiler -> Package output directory
中)
MY_PROJECTS
环境变量定义为W:\Test
(在Tools -> Options -> Environment Options -> Environment Variables -> User overrides
中)
当我从 IDE 构建或编译项目时,输出文件在 W:\Test\MyPackage
中创建。
如果我从 RAD Studio Command Prompt 构建项目,输出文件在 W:\MyPackage
中创建(就好像它没有看到 MY_PROJECTS
环境变量)。
cd W:\Source\MyPackage
msbuild MyPackage.dproj /t:build
如何确保它看到我的环境变量?
我检查了 RAD Studio 命令提示符,发现它是一个 link,目标如下:
%comspec% /K "C:\Program Files (x86)\Embarcadero\Studio.0\bin\rsvars.bat"
rsvars
是设置默认环境变量的批处理文件:
@SET BDS=C:\Program Files (x86)\Embarcadero\Studio.0
@SET BDSINCLUDE=C:\Program Files (x86)\Embarcadero\Studio.0\include
@SET BDSCOMMONDIR=C:\Users\Public\Documents\Embarcadero\Studio.0
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\v3.5
@SET FrameworkVersion=v3.5
@SET FrameworkSDKDir=
@SET PATH=%FrameworkDir%;%FrameworkSDKDir%;C:\Program Files (x86)\Embarcadero\Studio.0\bin;C:\Program Files (x86)\Embarcadero\Studio.0\bin64;C:\Users\Public\Documents\Embarcadero\InterBase\redist\InterBaseXE3\IDE_spoof;%PATH%
@SET LANGDIR=EN
@SET PLATFORM=
@SET PlatformSDK=
@SET CG_BOOST_ROOT=C:\Program Files (x86)\Embarcadero\Studio.0\include\boost_1_39
@SET CG_64_BOOST_ROOT=C:\Program Files (x86)\Embarcadero\Studio.0\include\boost_1_50
所以问题可以通过以下步骤解决:
- 创建一个空文件夹
创建名为 setup_environment_variables.bat
的批处理文件
REM ==== default environment variables ====
CALL "C:\Program Files (x86)\Embarcadero\Studio.0\bin\rsvars.bat"
REM ==== custom environment variables ====
@SET MY_PROJECTS=W:\Test
创建一个名为 link 的 自定义 RAD Studio 命令提示符,目标位置如下
"%comspec% " /K ".\setup_environment_variables.bat"
- 运行 Custom RAD Studio Command Prompt 它将看到
MY_PROJECT
环境变量,并将在预期目录中创建输出文件。
我的项目在输出路径中使用了环境变量,即 $(MY_PROJECTS)\MyPackage
(在 Project -> Options -> Delphi Compiler -> Package output directory
中)
MY_PROJECTS
环境变量定义为W:\Test
(在Tools -> Options -> Environment Options -> Environment Variables -> User overrides
中)
当我从 IDE 构建或编译项目时,输出文件在 W:\Test\MyPackage
中创建。
如果我从 RAD Studio Command Prompt 构建项目,输出文件在 W:\MyPackage
中创建(就好像它没有看到 MY_PROJECTS
环境变量)。
cd W:\Source\MyPackage
msbuild MyPackage.dproj /t:build
如何确保它看到我的环境变量?
我检查了 RAD Studio 命令提示符,发现它是一个 link,目标如下:
%comspec% /K "C:\Program Files (x86)\Embarcadero\Studio.0\bin\rsvars.bat"
rsvars
是设置默认环境变量的批处理文件:
@SET BDS=C:\Program Files (x86)\Embarcadero\Studio.0
@SET BDSINCLUDE=C:\Program Files (x86)\Embarcadero\Studio.0\include
@SET BDSCOMMONDIR=C:\Users\Public\Documents\Embarcadero\Studio.0
@SET FrameworkDir=C:\Windows\Microsoft.NET\Framework\v3.5
@SET FrameworkVersion=v3.5
@SET FrameworkSDKDir=
@SET PATH=%FrameworkDir%;%FrameworkSDKDir%;C:\Program Files (x86)\Embarcadero\Studio.0\bin;C:\Program Files (x86)\Embarcadero\Studio.0\bin64;C:\Users\Public\Documents\Embarcadero\InterBase\redist\InterBaseXE3\IDE_spoof;%PATH%
@SET LANGDIR=EN
@SET PLATFORM=
@SET PlatformSDK=
@SET CG_BOOST_ROOT=C:\Program Files (x86)\Embarcadero\Studio.0\include\boost_1_39
@SET CG_64_BOOST_ROOT=C:\Program Files (x86)\Embarcadero\Studio.0\include\boost_1_50
所以问题可以通过以下步骤解决:
- 创建一个空文件夹
创建名为
的批处理文件setup_environment_variables.bat
REM ==== default environment variables ==== CALL "C:\Program Files (x86)\Embarcadero\Studio.0\bin\rsvars.bat" REM ==== custom environment variables ==== @SET MY_PROJECTS=W:\Test
创建一个名为 link 的 自定义 RAD Studio 命令提示符,目标位置如下
"%comspec% " /K ".\setup_environment_variables.bat"
- 运行 Custom RAD Studio Command Prompt 它将看到
MY_PROJECT
环境变量,并将在预期目录中创建输出文件。