C#项目的PostEvent里经常会用到xcopy命令,复制目录时容易出错,如下:
xcopy sourceDir targetDir,其中的2个目录最后不能有反斜杠"",而目录类的宏命令一般都会在最后输出反斜杠"",比如$(TargetDir)。否则会报errorCode = 4。变通的解决方法是把$(TargetDir)替换为$(Project)bin\Debug
生成的路径里有的时候会带空格,因此保险的方式是加双引号"",定成如下格式:xcopy "sourceDir" "targetDir"
还有一个坑是xcopy的参数,如果targetDir不存在,要添加/I:如果目标不存在,且要复制多个文件,则假定目标必须是目录。虽然/I的解释词不达意,但作用就是创建新目录。其他常规的/E:复制目录和子目录、/Y:取消提示确认都好理解。添加 /E /Y /I 三个参数即可。
最后给一个项目中用的实例:xcopy "$(ProjectDir)bin\Debug" "$(ProjectDir)..\Main\bin\Debug" /E /Y /I