Frage VS 2010. Post-Build. Kopieren Sie Dateien in mehrere Verzeichnisse / mehrere Ausgabepfad


Ich habe ein MVC-Projekt und möchte seine Ausgabe aufteilen.

Ich möchte alle DLL-Dateien dieses Projekts (alle Inhalte aus dem Verzeichnis Bin) in ein Verzeichnis und alle Ansichten (Inhalt des Verzeichnisses View) in ein anderes Ausgabeverzeichnis kopieren.

Einstellungen des Projektes in VS 2010 erlauben mir das nicht einfach.

Ich kann nur einen Ausgabepfad in den Einstellungen angeben, und ich kann nicht angeben, welche Verzeichnisse oder Dateitypen kopiert werden sollen und wo.

Ich denke, dass ich das Ausgabeverzeichnis zu seinem Standard verlassen sollte, und dann muss ich die Ausgabe wie die Art teilen, die ich Post-Build-Befehl verwenden möchte.

Vielleicht hat jemand etwas Ähnliches gemacht und irgendwelche Ideen, wie man es am besten macht?


16
2017-12-01 12:29


Ursprung


Antworten:


Die Lösung ist

1) Setzen Sie den Ausgabepfad auf das Verzeichnis, in das Sie Ihre * DLL-Dateien in den Projekteigenschaften kopieren möchten

2) Verwenden des Post-Build-Ereignisses zum Kopieren des Inhalts des Verzeichnisses Anzeigen in das gewünschte Verzeichnis

in meinem Fall

1) Ausgabepfad, auf den ich eingestellt habe

.. \ MyDestinationProjectName \ Bin \

2) Das Post-Build-Ereignis zum Kopieren des View-Verzeichnisses sieht folgendermaßen aus

xcopy "$ (ProjectDir) \ Ansichten" "$ (SolutionDir) \ MyDestinationProjectName \ Plugins \ Views \ $ (Projektname) \" / s / i / y


22
2017-12-02 03:30



Dies sollte ein Kommentar zu @ caiosm1005 sein, aber mir fehlen Punkte. Wie von @Riapp angezeigt, verwenden Sie die xcopy Befehl. Eine detaillierte Erklärung der Schalter finden Sie hier Xcopy und Xcopy32 Switches

Meine Lösung war: xcopy "$(TargetDir)$(TargetFileName)" "C:\Mydestination" /s /i /y

Das TargetDir enthielt den vollständigen Pfad zu der kompilierten Datei und dem TargetFileName ist die Kombination von TargetName und TargetExt. Fügen Sie kein Backslash-Trennzeichen nach einer Verzeichnisvariablen ein, z. $(TargetDir)\$(TargetFileName) wird fehlschlagen, weil es als interpretiert wird "TargetName**\\** TargetExt".

Sobald Sie sich die Werte in den Makros ansehen, sollte es einfach sein zu wählen, was Sie wollen. Denken Sie daran, dass Sie dies für jedes Projekt in Ihrer Lösung tun müssen. Die Build-Ereignisse können durch Klicken mit der rechten Maustaste auf das Projekt, Auswählen der Eigenschaften und anschließendes Auswählen des Build Events Tab.


3
2018-02-07 12:17