Frage

In .NET gibt es zwei Versionsnummern zur Verfügung, wenn ein Projekt erstellen, Datei-Version-und Assembly-Version.Wie sind Sie mit diesen zahlen?Halten Sie das gleiche?Auto-increment, aber manuell ändern zu die andere?

Auch was über die AssemblyInformationalVersion Attribut?

Hätte ich diese Unterstützung Microsoft Knowledge Base (KB) - Artikel, einige helfen: Wie zu verwenden Assembly-Version-und Montage-File-Version.

War es hilfreich?

Lösung

In einem Szenario, in dem ich mehrere Datei-Baugruppen (d.h.1 exe-Datei und 5 dlls) werde ich eine andere Datei verwenden, die version für jeden, aber die gleiche assembly-version für alle von Ihnen, so dass Sie wissen, welche exe einzelnen dlls gehen mit.

Andere Tipps

In Lösungen mit mehreren Projekten, eine Sache, die ich gefunden habe sehr hilfreich ist, um alle AssemblyInfo-Dateien mit einem Projekt, das regelt die Versionierung.Also meine AssemblyInfos eine Zeile:

[assembly: AssemblyVersion(Foo.StaticVersion.Bar)]

Ich habe ein Projekt mit einer einzelnen Datei erklärt, dass die Zeichenfolge:

namespace Foo
{
    public static class StaticVersion
    {
         public const string Bar= "3.0.216.0"; // 08/01/2008 17:28:35
    }
}

Mein automatisierten build-Prozess wird dann nur die änderungen, die Zeichenfolge, die durch ziehen Sie die aktuellste version aus der Datenbank und erhöht die vorletzte Reihe.

Ich ändern nur den Großen build-Nummer, wenn das featureset ändert sich dramatisch.

Ich glaube nicht, ändern Sie die Datei-version.

Der KB-Artikel nennt die wichtigsten Unterscheidung:Datei-Versionen werden nur zur Anzeige verwendet, während die version der assembly spielt eine wichtige Teil in die .NETTO-Belastung Verhalten.

Wenn Sie die assembly-version Anzahl, dann ist die Identität der assembly als ganzes hat sich verändert.Entwickler müssen Sie neu erstellen, um Ihre Referenz neue version (es sei denn, Sie setzen eine gewisse auto-Versionierung "Richtlinie") und zur Laufzeit nur Baugruppen mit passenden Versionsnummern geladen werden.

Dies ist wichtig, in meinem Umfeld, wo wir brauchen eine erhöht, gut sichtbar Versionsnummer für audit-Zwecke, aber wir wollen nicht zu zwingen Entwickler, um neu zu erstellen oder zu viele Versionen gleichzeitig in der Produktion.In diesem Fall für die rückwärts-kompatibel kleinere änderungen, wir aktualisieren die version der Datei, aber nicht die version der assembly.

Datei-Versionen werden nur zur Anzeige verwendet, während die version der assembly spielt eine wichtige Teil in die .NETTO-Belastung Verhalten.

Nicht ganz.Die version der Datei ist auch wichtig für das Windows-Installationsprogramm beim upgrade einer vorhandenen version über eine Vorherige.

Mit meiner aktuellen Anwendung, jedes VS-Projekt hat einen link zu einer "AssemblyBuildInfo" source-Datei, die die folgenden Attribute:

[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyCompany("Acme Corporationy")]
[assembly: AssemblyCopyright("Copyright ©  2009 Acme Corporation")]

Auf diese Weise, alle die Baugruppen in meiner Lösung haben die gleiche version und Unternehmens-Informationen (das heißt, wenn ich ändern müssen es, ich ändere es nur ein einziges mal).Durch den Ausschluss der FileVersion, es ist automatisch eingestellt, um die AssemblyVersion.

@Adam:Ändern Sie die version der Datei bei jedem build?Verwenden Sie version control (SYN-oder VSS) und die Verwendung dieser Informationen zur link-Quelle zurück zu den Binärdateien?

Sinn zu machen scheint, dass die Assembly-version bleibt die gleiche.d.h."2.0.0.0".Entspricht die Implementierung des Produkts.

Die version der Datei ändert sich entsprechend der änderung aus dem source-control."2.0.??.revision" Das wäre ein link von einer bestimmten dll-Datei (oder exe), um die Quelle, die ihn baute.

Ich schrieb einen blog-post zu diesem Thema, die möglicherweise nützlich für die community http://blog.raffaeu.com/archive/2011/12/11/sharing-assembly-version-in-visual-studio-2010.aspx

Ich halten Sie die gleiche.Aber dann, ich habe nicht multifile-assemblies, die ist, wenn der AssemblyVersion-Nummer wichtig.Ich benutze Microsoft-Stil Datum Codierung für meine build-Nummern, sondern als auto-increment (ich finde nicht die Anzahl der Male, dass etwas gebaut wurde, um alles, was wichtig).

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