2014-07-23 8 views
6

Ich versuche, den Release-Ordner mit Beitrag beim Aufbau Ereignis aufzuräumen so i .xml und .pdb Dateien löschen und versuchen, alle DLL-Dateien in benutzerdefinierte Ordner lib Fehler zu kopieren i Post Build Exited with Code 1 bekommenmit Code erstellen Ereignis Exited Beitrag 1

Mein Code:

if $(ConfigurationName) == Release del "$(TargetDir)*.xml", "$(TargetDir)*.pdb" 
if $(ConfigurationName) == Release xcopy "$(TargetDir)\*.dll" "$(TargetDir)\lib\" 

Die 2-Befehle durch neue Linie getrennt sind, wie gezeigt ... auch Lib-Ordner vorhanden ist.

+3

Nach [Dokumentation] (http://technet.microsoft.com/en-us/library/bb491035.aspx), ein Return-Code von '1' bedeutet "** Es wurden keine Dateien zum Kopieren gefunden. **". –

+0

Da Sie die Dateinamen in Anführungszeichen schreiben, schlage ich auch vor, das Gleiche in Zeile zwei zu tun. Z.B. 'xcopy" $ (TargetDir) *. dll "" $ (TargetDir) lib \ "'. –

+0

@UweKeim arbeiten weder idk warum –

Antwort

0

Zuerst versuchen $(TargetDir)\ verwenden, da es einige Variablen, die ohne einen Schrägstrich zurückkehren, die Ihren Weg verketten würde, so dass Sie für bin\Debuglib\ suchen sind statt bin\Debug\lib

Wie von @Uwe Keim, Return Code 1 means no files found to copy . Dies kann auch passieren, wenn Sie auf einen ungültigen Ordner hingewiesen werden, was die Idee unterstützt, dass Sie diese möglicherweise benötigen \.

Es besteht auch die Möglichkeit, dass der Befehl del fehlgeschlagen ist, obwohl der gleiche Technet-Artikel auf del keine Rückkehrcodes anzeigt. Einige Forum-Quellen geben an, dass ein Rückgabecode von 1 einen fehlgeschlagenen Löschvorgang anzeigen kann.

+0

Die del funktioniert alleine, aber wenn ich den xcopy Befehl in einer neuen Zeile hinzufüge, scheint Visual Studio sie nicht zu trennen –

+0

Fehler Der Befehl "if Release == Release del "\ bin \ Freigabe \ *. xml", "\ bin \ Freigabe \ *. pdb" wenn Freigabe == Freigabe xcopy \ bin \ Freigabe \\ *. dll \ bin \ Freigabe \\ lib \ "beendet mit Code 4. –

+0

und jetzt ist der Ausgang Code 2 –

6

Statt

xcopy $(TargetDir)*.dll $(TargetDir)lib\ 

sollten Sie

xcopy "$(TargetDir)*.dll" "$(TargetDir)lib\" 

verwenden Leerzeichen im Pfad zu behandeln.

+1

tatsächlich funktionierte es, wenn ich xcopy durch Kopie ersetze ... –

0

Diese Änderung ist für mich:

del *.XML, *.pdb 
xcopy /y "$(TargetDir)*.dll" "$(TargetDir)lib\" 

1). Zielverzeichnis-Variable in del-Befehl auslassen

2)./y-Option in xcopy Hinweis von der Microsoft-Hilfeseite:/y: Unterdrückt die Aufforderung zum Bestätigen, dass Sie eine vorhandene Zieldatei überschreiben möchten.

3

Versuchen Sie VS mit Run als Administrator zu öffnen -> Projekt öffnen -> Build.

0

Diese Lösung funktionierte für mich

xcopy "$(TargetDir)*.dll" "$(TargetDir)lib\"