我正在尝试使用Post Build事件清理release文件夹,因此我删除了.xml
和.pdb
文件并尝试将所有dll文件复制到自定义lib文件夹中我得到Post Build Exited with Code 1
我的代码:
if $(ConfigurationName) == Release del "$(TargetDir)*.xml", "$(TargetDir)*.pdb"
if $(ConfigurationName) == Release xcopy "$(TargetDir)\*.dll" "$(TargetDir)\lib\"
如图所示,2个命令由新行分隔... 还存在Lib文件夹。
答案 0 :(得分:7)
而不是
xcopy $(TargetDir)*.dll $(TargetDir)lib\
你应该使用
xcopy "$(TargetDir)*.dll" "$(TargetDir)lib\"
处理路径中的空格。
答案 1 :(得分:3)
尝试以管理员身份运行打开VS - >打开项目 - >建立。
答案 2 :(得分:2)
首先,尝试使用$(TargetDir)\
,因为有一些变量在没有尾部斜杠的情况下返回,这会连接您的路径,因此您正在寻找bin\Debuglib\
而不是bin\Debug\lib
正如@Uwe Keim所指出的,Return Code 1 means no files found to copy。如果你指向一个无效的文件夹,这也会发生这种情况,这进一步说明你可能需要\
。
del
命令也有可能失败,尽管del上的相同technet文章没有指出任何返回码。某些论坛来源表明返回代码为1可能表示删除失败。
答案 3 :(得分:0)
这个修改对我有用:
del *.XML, *.pdb
xcopy /y "$(TargetDir)*.dll" "$(TargetDir)lib\"
1)。省略del命令中的目标目录变量
2)。 / y选项在xcopy中 Microsoft帮助页面中的注释:/ y:禁止提示您确认是否要覆盖现有目标文件。
答案 4 :(得分:0)
此解决方案适合我
xcopy "$(TargetDir)*.dll" "$(TargetDir)lib\"
答案 5 :(得分:0)
如果在Copy命令中使用相对路径,请确保父目录引用您想要的相应目录,否则您将收到退出代码1错误。
例如:
f . g $ x
这里,Project1和MainProject在SolnFolder共存。当我想到将xyz.dll复制到MainProject的x86文件夹时,它失败了,因为复制命令中使用的\ \是指源路径的释放文件夹而不是SolnFolder。因此,以下解决了这个问题:
copy "C:\SolnFolder\project1\release\bin\xyz.dll" "..\MainProject\bin\x86\"
注意:此外,确保引号与每个相对路径一起使用
答案 6 :(得分:0)
我总是在NIAC
行结束我的前/后构建事件,因为xcopy之类的程序即使成功也似乎返回非零错误。