C++ 生成后脚本在VIsual Studio 2010中引发错误

C++ 生成后脚本在VIsual Studio 2010中引发错误,c++,windows,visual-studio-2010,project,C++,Windows,Visual Studio 2010,Project,我见过几个线程都有相同的问题,但没有一个解决方案对我有效,所以我在这里尝试 我需要一个VS2010中的编译后脚本,将.lib文件移动到directroy(可能还不存在;如果存在,请创建它) 我正在使用它,它返回错误代码2: xcopy /y "$(TargetDir)$(ProjectName).lib" "$(SolutionDir)lib\$(ProjectName).lib" 也尝试过,返回错误代码1:(有什么区别?) 人们似乎最常见的问题是路径上缺少引号,但我有 为什么不工作?在命令行

我见过几个线程都有相同的问题,但没有一个解决方案对我有效,所以我在这里尝试

我需要一个VS2010中的编译后脚本,将.lib文件移动到directroy(可能还不存在;如果存在,请创建它)

我正在使用它,它返回
错误代码2

xcopy /y "$(TargetDir)$(ProjectName).lib" "$(SolutionDir)lib\$(ProjectName).lib"
也尝试过,返回
错误代码1
:(有什么区别?)

人们似乎最常见的问题是路径上缺少引号,但我有


为什么不工作?

在命令行上快速测试后,
copy
发生的情况是,它失败了,因为目录不存在。
xcopy
出现的情况是,当它发现目录不存在时,提示目标是文件还是目录,这是失败的
/-Y
可能在COPYCMD环境变量中设置,或者您的目标路径可能具有误导性,从而导致提示目标是否为未被覆盖的
/Y
标志禁止的目录或文件

示例:
xcopy/Y“C:\test.txt”“missingdirectory\test5.txt”


显然,最简单的解决方案是在生成后脚本中进行复制之前,检查目录是否存在,并在目录丢失时创建它。

在命令行上进行快速测试后,
copy
发生的情况是,由于目录不存在,它失败了。
xcopy
出现的情况是,当它发现目录不存在时,提示目标是文件还是目录,这是失败的
/-Y
可能在COPYCMD环境变量中设置,或者您的目标路径可能具有误导性,从而导致提示目标是否为未被覆盖的
/Y
标志禁止的目录或文件

示例:
xcopy/Y“C:\test.txt”“missingdirectory\test5.txt”


显然,最简单的解决方案是检查目录是否存在,并在生成后脚本中进行复制之前创建它。

这应该更接近:

if not exist "$(SolutionDir)lib" md "$(SolutionDir)lib"
xcopy /y /d "$(TargetPath)" "$(SolutionDir)lib"

这应该更接近:

if not exist "$(SolutionDir)lib" md "$(SolutionDir)lib"
xcopy /y /d "$(TargetPath)" "$(SolutionDir)lib"

错误代码2表示用户取消了xcopy操作。您可能需要指定
/q
开关。您的意思是在/y之后添加/q?当我试着确定您的环境或项目变量是否有适当的斜杠时,没有产生任何影响?考虑将源和目标回传到控制台或文本文件。错误代码2意味着用户取消了XCopy操作。您可能需要指定
/q
开关。您的意思是在/y之后添加/q?当我试着确定您的环境或项目变量是否有适当的斜杠时,没有产生任何影响?考虑将源和目标反馈到控制台或文本文件。