Ich habe ein relativ einfaches Post-Build-Ereignis in VS 2010, nur zwei Kopiervorgänge.
Die Ausgabe von den Kopieroperationen zeigt, dass sie erfolgreich waren, und ich habe die Verzeichnisse überprüft und die Dateikopie funktioniert einwandfrei.
VS sagt mir, dass der Build fehlgeschlagen ist, sagt mir aber nicht warum ... Hier ist die genaue Ausgabe:
Ich habe es auf den robocopy-Befehl beschränkt.
Wenn ich robocopy /s source dest
VS nicht funktioniert.
Wenn ich den Parameter '/ s' nicht verwende, scheitert es nicht, aber die Dateien werden nicht kopiert.
Irgendwelche Gedanken?
Ich poste das Skript nur nicht, weil ich es manuell ausgeführt habe und es keine Fehler gibt.
Normalerweise gibt ein Prozess den Exit-Status 0 zurück, wenn er erfolgreich war, und den Wert ungleich Null, wenn er fehlgeschlagen ist.
robocopy
scheint eine nicht standardmäßige Beendigungscode-Definition zu haben: 1 bedeutet auch Erfolg; 0 bedeutet einfach, dass keine Dateien kopiert wurden. Siehst du jetzt, warum sich VS nicht beschwert, wenn du /s
weglässt?
Ihr Prozess scheint mit dem Status 3 zu enden. Bitte prüfen Sie mit den Dokumenten von robocopy
, ob dies mit Ihren Anforderungen in Ordnung ist. Zu meiner Beherrschung bedeutet jeder Wert von 2 oder größer Ärger.
Sie sollten den Exit-Code selbst überprüfen, wenn er einen Fehlerzustand anzeigt, und mit 0 beenden, wenn alles in Ordnung ist (Code unten nicht getestet):
%Vor%Ich habe dieses hier
%Vor%Es ist eine kürzere Version der krlmlr-Antwort, die in einer einzigen Befehlszeile ausgeführt werden kann. Ich halte Fehlerlevel 3 oder darunter so erfolgreich wie den Exit-Code, wenn Dateien kopiert werden (Exit-Code 1) und es weitere Dateien im Ziel gibt (Exit-Code 2).
Tags und Links visual-studio-2010 post-build-event