Frage

Ich habe ein VS2008-Projekt in c # mit einer Reihe von Baugruppen geschrieben. Ich möchte eine einfache Möglichkeit haben, der die Versionsnummern zwischen all den verschiedenen Baugruppen verwalten und so automatisch die Build-Nummer erhöht und haben diese in die Versionsnummer jeder Baugruppe gespeichert.

Ich vermute, dass dies ein Problem bei den meisten Projekten ist so vermutlich es vor gelöst wurde?

Haben Sie Vorschläge, wie ich Management meines Projekts Version Ressourcen vereinfachen kann?

War es hilfreich?

Lösung

Ich verwende eine CS-Datei auf Lösungsebene, die von allen Projekten in der Lösung verknüpft ist, die die folgenden Zeilen enthalten:

using System.Reflection;
[assembly : AssemblyVersion("1.2.3.*")]

Und sicher sein, das AssemblyFileVersion Attribut aus der Assemblydatei in Ihrem Projekt zu entfernen.

Andere Tipps

Legen Sie eine Datei in die Lösung, nennen das „SolutionInfo.cs“ (Ich gehe davon aus C #, würde auch in VB arbeiten). Dabei setzen alle Eigenschaften, die Sie gemeinsam haben. Beginnen Sie mit AssemblyVersionAttribute.

Dann in jedem Projekt link , um diese von den bestehenden Artikel zu jedem Projekt der Auswahl hinzufügen, aber anstatt auf Hinzufügen klicken, die Drop nach unten als Link hinzuzufügen.

Wir haben eine einzige AssemblyInfoGlobal.cs Datei auf Lösungsebene, wie die anderen Antworten. Dann haben wir als Teil unserer Build-Skript eine kleine Anwendung, die die CCNetLabel nimmt, die definiert, CruiseControl.NET (und die defaultLabeller mit den Etiketten zu erzeugen) und die globale Datei Kasse, ändern Sie die Versionsnummer, und dann überprüfen Sie die globale Datei zurück in .

Einige unserer Projekte haben mehrere Lösungen, so dass die globale Datei über der Lösungsebene befindet sich in der Verzeichnisstruktur, hoch genug, so dass alles, was es braucht darunter ist.

Wir aktualisieren auch dann die Versionsnummern Einführungsprojekte - die Nummer für diesen innerhalb der VDProj Datei gefunden wird, aber ich bin nicht sicher, dass Sie diese in den Express-Versionen finden - ich denke, das ist ein voller Beruf nach oben verfügen. Und einige Projekte haben ein Dutzend Einführungsprojekte, aber keine einfache Möglichkeit, die Version NUMBERF aus der VDPROJ Datei selbst externalisieren. (Oder ist es?)

Dann geschieht das Build was bedeutet, dass alle Ausgänge aus dem Build haben genau die gleiche Versionsnummer, die zu jeder Zeit, dass wir die Version aus dem MSI oder Montag bekommen, und wir wissen genau, welche Quelle verwendet wurde, dass die Ausgabe zu bauen.

  

using System.Reflection; [assembly : AssemblyVersion("1.2.3.*")]

Nur ein Kommentar zu dieser, die automatisch generierte Versionsnummer Zyklen. Also, wenn Sie schauen, um Version zu können, so dass ein Build gestern eine Version 1.2.3.X hat, wobei X

Mit dieser Anwendung erreichen

[assembly : AssemblyVersion("1.2.*")]

Dies wird Ihnen Version 1.2.X.Y erhalten, wo die Kombination von X · Y ist größer als sie es gestern ist. Ich vermute, X.Y sind eine Funktion von Datum und Uhrzeit bzw.

Sie können eine benutzerdefinierte MSBuild Aufgabe schreiben, dies zu tun. Hier finden Sie aktuelle diesen Ansatz

Sie können Sternchen in Ihrem AssemblyInfo.cs verwenden:

// Version information
[assembly: AssemblyVersion( "1.0.*" )]

Es wird Ihre versionnumbers automatisch erhöhen. Für eine Zahl zwischen allen Baugruppen teilen ... Ich bin nicht sicher, aber vielleicht verwenden Sie das erwähnte Attribut in einer gemeinsamen Datei.

Ich habe die verwendeten svnversion MSBuild Community Aufgaben etwas zu tun, wie Dabei folgte ich den Anweisungen hier Obwohl die Art, wie ich es tue nicht mehrere Baugruppen umfassen.

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