2

我有一个控制台程序,将其 exe 和 dll 输出到指定目录。

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

我的 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

发生初始化错误。没有足够的内存或磁盘空间,或者您在命令行中输入了无效的驱动器名称或无效的语法。

我哪里错了?

4

2 回答 2

2

知道了,

我将构建后事件中的 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更受欢迎,我猜你不能使用没有基本路径的相对路径。

于 2013-01-17T02:44:19.777 回答
1

为什么你不调用批处理文件,它将为所需文件源运行 xcopy 到目标?

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

copyifnewer.bat 看起来像这样:

IF NOT EXIST <destination> md <destination>
XCOPY /Y <file> <destination>
于 2013-01-17T02:23:48.880 回答