So legen Sie den Lösungsdatei Speicherort an, um die Versionsinformationsdateien in MSBuild zu versionieren

StackOverflow https://stackoverflow.com//questions/25075651

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.

War es hilfreich?

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

verwenden

Gemäß 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top