我见过几个有同样问题的线程,但没有一个解决方案对我有用,所以我在这里尝试。
我需要VS2010中的一个后期构建脚本,它将.lib文件移动到一个directroy(可能还不存在;如果是这样的话)。
我正在使用它,返回error code 2
:
xcopy /y "$(TargetDir)$(ProjectName).lib" "$(SolutionDir)lib\$(ProjectName).lib"
还试过,返回error code 1
:(有什么区别?)
copy /y "$(TargetDir)$(ProjectName).lib" "$(SolutionDir)lib\$(ProjectName).lib"
人们似乎最常见的问题是路径上缺少引号,但我有。
为什么它不起作用?
答案 0 :(得分:3)
这应该更接近:
if not exist "$(SolutionDir)lib" md "$(SolutionDir)lib"
xcopy /y /d "$(TargetPath)" "$(SolutionDir)lib"
答案 1 :(得分:1)
在命令行上进行快速测试后,copy
发生的情况是失败,因为该目录不存在。 xcopy
发生的事情是当它发现目标不存在时提示目标是文件还是目录时失败。可以在COPYCMD环境变量中设置/-Y
,或者您的目标路径可能会产生误导,从而提示目标是否是/Y
标记未被覆盖的目录或文件。
示例:xcopy /Y "C:\test.txt" "missingdirectory\test5.txt"
显然,最简单的解决方案是检查目录是否存在,如果缺少该目录,则在构建后的脚本中进行复制之前将其创建。