在构建期间XCopy失败但不是从命令行失败?

时间:2013-01-17 02:17:41

标签: c# visual-studio-2012 build-process xcopy

我有一个控制台程序输出它的exe& dll到指定的目录。

作为post build事件,我试图将该目录中的所有内容复制到另一个目录。

我的xcopy命令在命令提示符下工作但在VS2010中失败了吗?怎么会这样?

我正在测试它,方法是转到项目文件夹并在命令提示符下执行以下命令。 (这是VS2010的输出)

在我的后期制作活动中:

xcopy "$(OutDir)*.*" "$(TargetDir)..\..\Foo\Bar\" /s /y /i

从命令提示符我执行以下工作。

xcopy "..\..\..\..\MyDir\baz\zip\*.*" "c:\1\2\3\MyDir\baz\zip\..\..\Foo\Bar\" /s /y /i

抱歉目录名称。

最终结果应该是两个目录中包含相同文件的目录:

c:\1\2\3\MyDir\baz\zip
c:\1\2\3\MyDir\foo\bar 

目标路径相对于输出目录。

当它作为构建的一部分执行时,它会提供退出代码4

  

发生初始化错误。内存或磁盘不足   空格,或者您输入的驱动器名称无效或语法无效   命令行。

我哪里错了?

2 个答案:

答案 0 :(得分:2)

知道了,

我将post post事件中的xcopy命令更改为:

xcopy "$(TargetDir)*.*" "$(TargetDir)..\..\Foo\Bar\" /s /y /i

执行结果为:

xcopy "c:\1\2\3\MyDir\baz\zip\*.*" "c:\1\2\3\MyDir\baz\zip\..\..\Foo\Bar\" /s /y /i

哪个VS2010更受欢迎,我猜你不能使用没有基本路径的相对路径。

答案 1 :(得分:0)

为什么不调用批处理文件,该文件将为所需的文件源运行xcopy到目的地?

call "$(SolutionDir)scripts\copyifnewer.bat"

如果newer.bat看起来像这样的副本:

IF NOT EXIST <destination> md <destination>
XCOPY /Y <file> <destination>