使用相对路径的生成后事件在VS 2013中不起作用

sun*_*dar 1 .net batch-file post-build-event visual-studio-2013

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

..\..\PostBuildEventCopy.bat $(TargetDir) $(TargetName)
Run Code Online (Sandbox Code Playgroud)

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

Error: '..\..\PostBuildEventCopy.bat' is not recognized as an internal or external command, operable program or batch file. 
Run Code Online (Sandbox Code Playgroud)

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

我在这里想念什么吗?任何帮助表示赞赏。

Han*_*ant 7

绝对依赖于当前目录并使用相对路径。它只是不在您希望的位置,通常是构建目录(bin \ Debug或bin \ Release)。但这是可以更改的设置,以便再次中断构建事件。

始终指定完整路径,以免发生此类损失。并且始终在路径周围使用“双引号”,这样路径名中的空格就不会字节化。固定:

   "$(ProjectDir)\..\..\PostBuildEventCopy.bat" "$(TargetDir)" "$(TargetName)"
Run Code Online (Sandbox Code Playgroud)

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