So legen Sie den Lösungsdatei Speicherort an, um die Versionsinformationsdateien in MSBuild zu versionieren
-
26-12-2019 - |
Frage
Ich habe mit diesem für einen Tag, aber kein Glück fummelt. Die Montage-Versionierung mit MSBuild, die zur Arbeit verwendet wurde, aber kürzlich haben wir die Lösungsdateien in einem separaten Ordner innerhalb der Wurzel des Projekts verschoben, und seitdem funktioniert die Versionierung nicht.
unten ist die Projektstruktur
Code-Ordner
-> projecta-Ordner
-> projectb-Ordner
-> projectc-Ordner
-> Solutions-Ordner
* Zuvor waren die Dateien von Lösungen (.sln) unter dem Code-Ordner.
Wenn wir das MSBuild ausführen, erhalte ich die untenstehende Warnung.
Es wurden keine Montageinformationsdateien bereitgestellt
unten ist eine abgeschnittene Version des Build-Protokolls.
Arbeitsbereich löschen
00:00 Delete-Quellenverzeichnis
00:00 Erstellen Sie den Arbeitsbereich
01:14 Erhalten Sie den Arbeitsbereich
00:00 Versioning-Baugruppen
00:00 MontageVersion und MontageFileVersion-Montageversion Verarbeitung: Verwenden von Versionsnummer Muster in der Baudefinition
00:00 Setzen Sie alle Assembly-Eigenschaftenwerte (B) Versioning-Baugruppen mit Die folgenden Muster: MontageVersion (1.0.0.0) und MontageFileVersion (yyyy.mm.dd.b)
Keine Montageinformationsdateien waren bereitgestellt
unten ist die MSBUILD-Aufgabe, die das obige Protokoll erzeugt.
generasacodicetagpre.Ich habe auch die Lösung angesehen, die vorgeschlagen wird, hier , aber kein Glück. Kann mir bitte jemand in die richtige Richtung zeigen? Ich bin kein Experte für MSBuild.
Vielen Dank im Voraus.
Lösung
Ich habe endete die folgende Problemumgehung. Wir haben keine Möglichkeit, alle Lösungen auf die Wurzelstufe des Projekts zu bewegen.
a. Erstellen Sie eine neue Lösung, die i.E SomEAPP.LIB.Versioning.Sln Diese Lösung würde unter dem Stammordner leben, und es wird nur für die Versionierung des Rest der Projekte verwendet.
b. Das Projekt (.csProj) für die SomeApp.lib.Versioning.Sln würde auf dem üblichen Niveau wie der Rest der Projekte leben.
Die neue Struktur ist also
Code-Ordner
-> projecta-Ordner
-> projectb-Ordner
-> projectc-Ordner
-> Solutions-Ordner
-> somEApp.lib.versioning.sln
-> somEApp.lib.versionierender Ordner
c. Jetzt verweis ich auf die SomeApp.lib.Versioning.Proj von einem der Lösungen in Lösungsordnern. Dies bedeutet SomEAPP.LIB.Versioning.proj zwei Lösungen, die angehängt sind.
d. Das Projekt, das die Anzeigen der Build-Version anzeigt, würde die Typ-I.E-Klassendatei von der SomEApp.lib.versioning.proj
verwendenGemäß der Standard-Build-Versioning SomEApp.lib.Versioning.Proj hätte die korrekte Build-Version (SomEApp.lib.Versioning.Sln auf der Stammebene)
Bemerkungen: Dies ist nur eine Arbeit um und keine ideale Lösung. Dies wird nicht alle Baugruppen im Projekt versionieren. Wenn wir beispielsweise wissen wollen, welche Montage in welcher Version errichtet wurde, wird dies nicht funktionieren. Es ist einfach Platzhalter, um die Build-Version der Lösung zu erhalten.