【发布时间】:2012-06-06 11:37:10
【问题描述】:
我有一个批处理文件,我想在 VS 2008 的构建后事件中调用它。其中包含对 al.exe 的调用。上述项目的构建通常会以exit code 1 失败。
如果在批处理文件中,我将对al.exe 的调用替换为对C:\Windows\Microsoft.NET\Framework\v2.0.50727\al.exe 的调用,则会根据需要处理构建事件。这意味着在执行批处理文件期间找不到构建后事件“al.exe”。
问题是我需要在我们的构建服务器上执行这个,而不仅仅是在我的机器上,从长远来看,不仅仅是在构建服务器上,所以我宁愿不参考硬编码路径名。
我遇到了环境变量$(MSBuildBinPath) 和$(MSBuildToolsPath),但是当我在批处理文件中像这样使用它们时,它们没有在构建后事件编辑器中列为宏并且似乎没有解决问题:
"$(MSBuildToolsPath)\al.exe" /link: ...
也许这里的语法(双引号)不正确?当然,我已经尝试了几种变体。如果没有:是否有人有任何其他提示如何使用硬编码路径字符串?我确实在这里找到了建议安装更新版本的 MS 工具的帖子,但是构建服务器的设置不受我的控制并且相当标准化,因此更改它会是一项相当痛苦的任务。出于这个原因,我更喜欢可以在 VS 2008 项目设置中控制的解决方案。
批处理文件是运行由另一个早期构建的项目生成的二进制文件的输出,因此我可以将正确的(取决于机器的)路径写入批处理文件,如果我只知道如何找出路径其他项目或在该项目输出的二进制文件的运行时。
TIA,托马斯
【问题讨论】:
标签: visual-studio-2008 build-automation