如何在VS 2008的后期构建事件中使用系统环境变量?

22

如何在不编写和执行外部批处理文件的情况下,在项目后生成事件中使用系统环境变量?我认为只需创建一个名为LHDLLDEPLOY的新环境变量,并在我的后生成事件文本框中编写以下内容即可:

copy $(TargetPath) %LHDLLDEPLOY%\$(TargetFileName) /Y
copy $(TargetName).pdb %LHDLLDEPLOY%\$(TargetName).pdb /Y

然而,很遗憾,情况并非如此。构建输出显示将文件写入“%LHDLLDEPLOY%”文件夹(两次“1 file(s) copied”),但文件不在等式路径中,也没有一个名为“LHDLLDEPLOY”的新文件夹。

它们实际上去了哪里,我该如何正确操作?

(更新:Xavier解决了这个问题。另外,他的变量格式为$(LHDLLDEPLOY),在我重新启动机器以刷新环境变量后,可以使用)

(更新2:事实证明,我不必重新启动计算机。我只需要确保a)关闭了环境变量列表窗口,并b)关闭/重新启动Visual Studio即可。)

2个回答

28

您是否尝试过使用$(LHDLLDEPLOY)而不是%LHDLLDEPLOY%?


0

并非所有在“Visual Studio命令提示符”中定义的变量都可以在后期构建脚本中访问。以下是解决此问题的脚本:

call "$(DevEnvDir)..\..\VC\Auxiliary\Build\vcvars64.bat"
"%VCINSTALLDIR%Tools\MSVC\%VCToolsVersion%\bin\Hostx64\x64\editbin.exe" /NOLOGO /STACK:2097152 "$(TargetPath)"

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