2009-04-17 9 views

Antwort

40

Sie können eine AssemblyInfo.cs-Datei zwischen allen Projekten in der Projektmappe freigeben. Diese freigegebene Datei sollte die Versionsnummern enthalten. Um es zu teilen, müssen Sie Vorhandene Datei in VS hinzufügen und im Dateidialog Als Link hinzufügen auswählen. Jedes Projekt hat seine private und die gemeinsame AssemblyInfo.cs. Der private enthält immer noch die Nicht-Version-Attribute.

Ich habe ein TeamCity-Setup, wo ich die gemeinsame Datei in jedem TeamCity-Build mit der tatsächlichen Build-Version erzeuge und es funktioniert wunderbar.

+6

Ich neige dazu, die gemeinsame Datei aufzurufen " SolutionInfo.cs "auch mit Dingen wie dem Urheberrecht darin, und gespeichert als ein Lösungsartikel für SCM mit allen Projekten, die zu ihm ebenso verbinden. – Richard

+0

Ich nannte die Datei VersionInfo in meinem Fall :) – grover

+0

Das ist so brillant einfach (und brillant brillant), und so eine große Gewohnheit, im Allgemeinen zu kultivieren. Vielen Dank. – GregRos

3

Suchen/Ersetzen?

Die Versionsnummern werden schließlich in Textdateien gespeichert (AssemblyInfo.cs im Ordner Eigenschaften für jedes Projekt).

+0

Das ist alles funktionieren würde, wenn die Baugruppen in der gleichen Dur/Moll-Version sind. Leider sind meine überall :) – PaulB

+0

Möchten Sie nur erhöhen, oder machen Sie alle gleich? Weil Sie einfach einen regulären Ausdruck verwenden können, um alle zu finden, selbst wenn sie unterschiedliche Zahlen haben. –

+1

Hier wäre einer, der funktionieren würde: \\ [Assembly: \ s + AssemblyVersion \\ ("\ d + \. \ D + \. \ D + \. \ D +" \\) \\] –

10

Wir haben eine einzige AssemblyInfoCommon.cs, die die Versionsnummern hat, und ist in jedem Projekt als Referenz enthalten. Die anderen AssemblyInfo.cs-Dateien verbleiben, enthalten jedoch nur die assembly-spezifischen Informationen (Titel und Beschreibung). Daher haben wir nur eine Datei für jedes C# -Projekt zu aktualisieren.

7

Sie können auch eine öffentliche const-Zeichenfolge in einer Ihrer Klassen haben, die die Build-Nummer darstellt, und sie in allen AssemblyInfo.cs für die verschiedenen Projekte verwenden. Natürlich müsste dies in einem Projekt sein, auf das alle anderen Projekte verweisen, um zu arbeiten.

Es ist eine gute Option, wenn Sie nicht die Idee mögen, in allen Ihren Projekten auf die gleiche AssemblyInfo.cs zu verweisen.

Bearbeiten: Hinweis! Dies funktioniert auch, wenn Sie mehrere Sprachen verwenden (F # und C# in meinem Fall).

0

Sie können auch einige „Kern“ Assembly erstellen, und fügen Sie in jede Ihrer Montagereferenz "Kern" -Aufbau. "Kern" -Aufbau wird konstant konstant bleiben. In diesem Fall wird in jeder Assembly-Infodatei eine Assembly-Version von der "core" -Konstante festgelegt. Zum Beispiel:

"Kern" Baugruppe hat Datei Ver.cs mit Konstante: public const Zeichenfolge Wert = "0.0.0.99";

in jeder Lösung Montag info wird: [assembly: Assembly (Ver.Value)]

Verwandte Themen