Post-Build-Ereignis VS 2010 schlägt fehl, aber tut es wirklich nicht

8

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:

%Vor%

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.

    
Tag Ashby 05.07.2012, 21:46
quelle

2 Antworten

10

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%     
krlmlr 05.07.2012, 21:51
quelle
0

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).

    
Mick 30.08.2017 03:29
quelle