我有两个级别的批处理文件。
..\..\PostBuildEventCopy.bat $(TargetDir) $(TargetName)
此批处理文件将某些文件复制到批处理文件中提到的位置。我得到以下错误。在我看来,VS无法找到批处理文件。
Error: '..\..\PostBuildEventCopy.bat' is not recognized as an internal or external command, operable program or batch file.
但是当我提到批处理文件的完整路径时,会发布构建事件。
我在这里遗漏了什么吗?任何帮助表示赞赏。
答案 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
位于项目目录的根目录中。