vs2017 - Visual Studio Post-Build-Ereignis-Kopieren in den relativen Verzeichnisspeicherort




vs2017 marketplace (4)

Du könntest es versuchen:

$(SolutionDir)\..\..\

Bei einem erfolgreichen Build möchte ich den Inhalt des Ausgabeverzeichnisses an einen anderen Speicherort im selben "Basis" -Ordner kopieren. Dieser übergeordnete Ordner ist ein relativer Teil und kann basierend auf den Einstellungen der Quellcodeverwaltung variieren.

Ich habe einige der für mich verfügbaren Macro-Werte aufgelistet ...

$ (SolutionDir) = D: \ GlobalDir \ Version \ AppName \ Solution1 \ Build

$ (ProjectDir) = D: \ GlobalDir \ Version \ AppName \ Lösung1 \ Version \ ProjectA \

Ich möchte den Inhalt des Ausgabeverzeichnisses in den folgenden Ordner kopieren:

D: \ GlobalDir \ Version \ AppName \ Solution2 \ Projekt \ Abhängigkeit

Der Basisspeicherort "D: \ GlobalDir \ Version \ AppName" muss aus einem der obigen Makros abgerufen werden. Keiner der Makrowerte listet jedoch nur den übergeordneten Speicherort auf.

Wie extrahiere ich nur den Basisstandort für den Kopierbefehl nach dem Build?


Hier ist, was Sie in die Befehlszeile des Projekts nach dem Build einfügen möchten:

copy /Y "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)lib\$(ProjectName).dll"

BEARBEITEN: Oder wenn Ihr Zielname sich von dem Projektnamen unterscheidet.

copy /Y "$(TargetDir)$(TargetName).dll" "$(SolutionDir)lib\$(TargetName).dll"

Wäre es nicht sinnvoll, msbuild direkt zu verwenden? Wenn Sie dies mit jedem Build tun, können Sie am Ende eine Msbuild-Aufgabe hinzufügen? Wenn Sie nur sehen möchten, ob Sie einen anderen Makrowert nicht finden können, der nicht in der Visual Studio IDE angezeigt wird, können Sie die Msbuild-Optionen für die Diagnose aktivieren und Ihnen alle Variablen anzeigen, die Sie verwenden könnten genau wie ihr aktueller Wert.

Um dies in Visual Studio einzuschalten, gehen Sie zu Extras / Optionen, scrollen Sie dann in der Baumansicht zu dem Abschnitt Projekte und Lösungen, erweitern Sie das und klicken Sie auf Erstellen und Ausführen, auf der rechten Seite ist ein Drop-down, das die Ausführlichkeit der Build-Ausgabe angibt Wenn Sie das auf diagnostic einstellen, wird Ihnen angezeigt, welche anderen Makrowerte Sie verwenden könnten.

Weil ich nicht genau weiß, auf welcher Ebene Sie gerne gehen würden und wie komplex Ihr Build sein soll, könnte Ihnen das eine Idee geben. Ich habe kürzlich Build-Skripte gemacht, die sogar SQL-Code als Teil des Builds ausführen. Wenn Sie weitere Hilfe oder sogar einige Beispiel-Build-Skripte benötigen, lassen Sie es mich wissen, aber wenn es nur ein kleiner Prozess ist, den Sie am Ende des Builds ausführen möchten, ist das vollständige Skript msbuild möglicherweise ein bisschen überkillt .

Hoffe es hilft Rihan


Wenn kein TargetDir oder andere Makros an die richtige Stelle zeigen, verwenden Sie das Verzeichnis "..", um rückwärts in die Ordnerhierarchie zu gelangen.

dh. Verwenden Sie $(SolutionDir)\..\.. , um Ihr Basisverzeichnis zu erhalten.

Eine Liste aller Makros finden Sie hier:

http://msdn.microsoft.com/en-us/library/c02as0cs.aspx





post-build-event