XCopy在构建过程中失败,但不是从命令行
本文关键字:命令行 构建 过程中 失败 XCopy | 更新日期: 2023-09-27 17:53:58
我有一个控制台程序输出它的exe &
作为构建后事件,我试图将该目录中的所有内容复制到另一个目录。
我的xcopy命令从命令提示符工作,但在VS2010失败?这怎么可能呢?
我通过进入项目文件夹并在命令提示符中执行以下命令来测试它。(这是VS2010的输出)
在我的post-build事件中:
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
初始化错误。没有足够的内存或磁盘输入了无效的驱动器名称或无效的语法命令行。
我哪里错了?
明白了,
我改变了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更喜欢,我猜你不能使用没有基本路径的相对路径。
为什么你不调用批处理文件,它将运行xcopy所需的文件源到目标?
call "$(SolutionDir)scripts'copyifnewer.bat"
copyifnewer.bat看起来像这样:
IF NOT EXIST <destination> md <destination>
XCOPY /Y <file> <destination>