2013-07-19 4 views
23

Ich möchte, dass bei jedem Build ein bestimmtes Verzeichnis in den Ausgabeordner ("bin") kopiert wird. Ich denke, es kann über Post-Build-Skripte behandelt werden. Aber ich bin nicht sicher, wie man ein Verzeichnis selbst kopiert. Ich weiß, wie man mit bestimmten Dateien umgeht.Gesamtes Verzeichnis in den Ausgabeordner kopieren, wobei die Ordnerstruktur beibehalten wird?

Für zB funktioniert dies für eine Datei:

In

Projekt> Eigenschaften> Ereignisse beim Aufbau> Post Bauen

COPY "$(SolutionDir)Resources\Release Notes.pdf" "$(TargetDir)" 

Aber angenommen, ich habe ein Verzeichnis Template, jetzt brauche ich alles unter Template zu kommen zu bin Ordner nach erfolgreicher Erstellung Aufrechterhaltung der Ordnerstruktur.

Ich versuchte dies:

COPY "$(SolutionDir)Resources\Template\" "$(TargetDir)" 

wird nur kopiert die Dateien in Template Verzeichnis auf diese Weise und nicht die Unterverzeichnisse und die Dateien innerhalb Template Ordner. Ich möchte den Ordner Template selbst in meine Ausgabe bin Ordner kommen. Mit anderen Worten, sollte bin wie folgt aussehen:

bin > Template > abc.xxx 
       xxx.yyy 
       Subdirectory1 > asd.qwe 
           zxc.qwe 
       Subdirectory2 > ... 

Dies ist ein Duplikat sein könnte, aber ich konnte keinen relevanten Thread finden. Vielen Dank.

Antwort

23

Das ist für mich gearbeitet. /S ist der Schlüssel, der alles rekursiv kopiert.

XCOPY "$(SolutionDir)Resources\Template" "$(TargetDir)\Template\" /S 

Da wollte ich Dateien jedes Mal, ohne Aufforderung, fügte ich einen /Y Schalter als auch überschrieben werden.

XCOPY "$(SolutionDir)Resources\Template" "$(TargetDir)\Template\" /S /Y 
+9

/S ignoriert leere Ordner. Um alles zu kopieren, einschließlich leerer Ordner, verwenden Sie stattdessen/E. –

16

Versuchen Sie XCOPY anstelle von COPY; z.B.

XCOPY "$(SolutionDir)Resources\Template\" "$(TargetDir)" /s /i /y 

Weitere Informationen über XCOPY Sie hier ...

http://www.computerhope.com/xcopyhlp.htm

+2

+1 für die richtige Richtung geben. Aber deine Lösung hat nicht funktioniert. Ich musste das Ziel "Template" im zweiten Argument angeben. Und ich bin mir nicht sicher, ob '/ I' wirklich benötigt wird. Anstatt deine zu bearbeiten, habe ich es als separate Antwort erstellt. – nawfal

+1

Beachten Sie, dass Sie mit XCOPY "$ (SolutionDir) .. \ Resources \ Template" "$ (TargetDir)" ein Verzeichnis über dem SolutionDir gehen können/S/I/Y –

Verwandte Themen