[英]Post Build Event Exited with Code 1
我正在嘗試使用 Post Build 事件清理發布文件夾,因此我刪除了.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 文件夾也存在。
代替
xcopy $(TargetDir)*.dll $(TargetDir)lib\
你應該使用
xcopy "$(TargetDir)*.dll" "$(TargetDir)lib\"
處理路徑中的空格。
嘗試使用以管理員身份運行 -> 打開項目 -> 構建打開 VS。
首先,嘗試使用$(TargetDir)\\
,因為有些變量返回時不帶斜杠,這會連接您的路徑,因此您正在尋找bin\\Debuglib\\
而不是bin\\Debug\\lib
正如@Uwe Keim 所指出的,返回代碼 1 意味着沒有找到要復制的文件。 如果您指向無效的文件夾,也會發生這種情況,從而進一步認為您可能需要該\\
。
del
命令也有可能失敗,盡管有關 del 的同一技術網文章沒有指示任何返回代碼。 一些論壇來源指出返回碼 1 可能表示刪除失敗。
這個修改對我有用:
del *.XML, *.pdb
xcopy /y "$(TargetDir)*.dll" "$(TargetDir)lib\"
1)。 在 del 命令中省略目標目錄變量
2)。 xcopy 中的 /y 選項 Microsoft 幫助頁面中的注意事項: /y :禁止提示以確認您要覆蓋現有目標文件。
這個解決方案對我有用
xcopy "$(TargetDir)*.dll" "$(TargetDir)lib\"
如果您在 Copy 命令中使用相對路徑,請確保父目錄是指您打算使用的適當目錄,否則您將收到退出代碼 1 錯誤。
例如:
copy "C:\SolnFolder\project1\release\bin\xyz.dll" "..\MainProject\bin\x86\"
在這里,Project1 和 MainProject 共存於 SolnFolder。 當我想到將 xyz.dll 復制到 MainProject 的 x86 文件夾時,它失敗了,因為復制命令中使用的 ..\\ 指的是源路徑的發布文件夾而不是 SolnFolder。 因此,下面解決了這個問題:
copy "C:\SolnFolder\project1\release\bin\xyz.dll" "..\..\..\MainProject\bin\x86\"
注意:另外,請確保每個相對路徑都使用引號
我總是用@set ERRORLEVEL=0
行結束我的前/后構建事件,因為像 xcopy 這樣的程序似乎即使成功也返回非零錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.