使用相对路径的后期构建事件在VS 2013中不起作用

时间:2015-06-11 06:24:05

标签: .net batch-file visual-studio-2013 post-build-event

我有两个级别的批处理文件。

..\..\PostBuildEventCopy.bat $(TargetDir) $(TargetName)

此批处理文件将某些文件复制到批处理文件中提到的位置。我得到以下错误。在我看来,VS无法找到批处理文件。

Error: '..\..\PostBuildEventCopy.bat' is not recognized as an internal or external command, operable program or batch file. 

但是当我提到批处理文件的完整路径时,会发布构建事件。

我在这里遗漏了什么吗?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:5)

具有相对路径的当前目录永远不会出错。它不在您希望的位置,通常是构建目录(bin \ Debug或bin \ Release)。但这是一个可以更改的设置,以便再次破坏您的构建事件。

始终指定完整路径,以避免此类损失。并且始终在路径周围使用“双引号”,因此路径名中的空格不是字节。修正:

   "$(ProjectDir)\..\..\PostBuildEventCopy.bat" "$(TargetDir)" "$(TargetName)"

单击“编辑”弹出窗口中的“宏”按钮,查看可以使用的$ {Something}宏。

答案 1 :(得分:2)

  

未被识别为内部或外部命令

只是意味着它找不到您的bat文件。而且我很确定这就是问题所在! ;) - 如果您还没有从.\bin\debug.\bin\release更改输出目录,则表示您必须将此文件存储在项目目录中。从输出目录中解析出两个级别!

还要确保在蝙蝠呼叫之前添加start命令。
我的2级以上的postbuild事件如下所示:

..\..\test.bat

并且test.bat位于项目目录的根目录中。