これは非常に活発な質問であるため、将来の訪問者のためにこれを追加しました.
ROBOCOPY は、8 未満の「成功コード」で終了します。参照: http://support.microsoft.com/kb/954404
この意味は:
robocopy exit code 0 = no files copied
robocopy exit code 1 = files copied
When the result is 1, this becomes an error exit code in visual studio.
だから私はこれをバッチファイルの一番下に追加することでこれを簡単に解決しました
exit 0
この方法で ROBOCOPY エラーを処理することを提案します
rem each robocopy statement and then underneath have the error check.
if %ERRORLEVEL% GEQ 8 goto failed
rem end of batch file
GOTO success
:failed
rem do not pause as it will pause msbuild.
exit 1
:success
exit 0
ファイルがコピーされない場合、混乱が生じます = VS でエラーは発生しません。次に、変更があると、ファイルがコピーされ、VS エラーが発生しますが、開発者が望んでいたことはすべて行われました。
追加のヒント: VS ビルドで無期限の一時停止になるため、スクリプトで一時停止を使用しないでください。スクリプトの開発中に、次のようなものを使用しますtimeout 10
。ぶら下がっているビルドではなく、これに気づき、コメントアウトします。