Frage

Ich weiß, Visual Studio keine Möglichkeit hat, die Build-Nummer in einer Art und Weise zu erhöhen, dass die Menschen erwarten würden, aber es unterstützt die Build-Nummer Randomisierung:

Meine AssemblyInfo.cs Datei enthält:

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("1.0.*")]

Und doch gibt es, was scheint mir, nicht-sensical Ergebnisse (selbst wenn man Visual Studio Pseudo-Zufallsversionsnummern): alt text

So ist die einfachere Frage lautet:

Was kann ich in AssemblyInfo.cs setzen, damit es funktioniert?

MSDN (aus Gründen der Klarheit neu formatiert) :

Sie können alle gewünschten Werte oder Sie akzeptieren kann die Standard-Build-Nummer, Revisionsnummer oder beide durch ein unter Verwendung von Sternchen (*). Zum Beispiel:

[assembly:AssemblyVersion("2.3.25.1")]

gibt 2 als Hauptversion, 3 als die kleinere Version, 25 als Build Nummer und 1 als die Revisionsnummer. Eine Versionsnummer wie

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

gibt 1 als die Hauptversion, 2 als die kleinere Version, und nimmt die Standard-Build und Versionsnummern. EIN Versionsnummer wie

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

gibt 1 als die Hauptversion, 2 als die kleinere Version, 15 als Build Nummer und übernimmt den Standard Revisionsnummer.

Die Standard-Build-Nummer Schritte Täglich. Die Standard-Revisionsnummer ist zufällig.

ich das so zu verstehen, dass die Versionsnummern sind:

[1.0.0.0]
major.minor.build.revision

, während

[1.0.0.*]
major.minor.build.[random]

und

[1.0.*]
major.minor.[daynumber].[random]
War es hilfreich?

Lösung

Ich bin 99% sicher, dass das Problem, das Sie erleben durch diese Linie verursacht wird:

[assembly: AssemblyFileVersion("1.0.*")]

Der Haken ist, dass Visual Studio nicht mit automatischer Erhöhung der AssemblyFileVersion unterstützt, nur die AssemblyVersion. So ist der Rest des Codes sollte in Ordnung sein. Versuchen Sie einfach zu kommentieren, dass die zweite Linie und sehen, ob Sie die Ergebnisse, die Sie erwarten. Alle der Versionsinformationen für die Datei und Produkt sollten gleichwertig sein.

Ich weiß nicht, wo genau diese offiziell dokumentiert ist (anders als die Fehlermeldung erhalten Sie, wenn Sie versuchen, das Sternchen für die „Dateiversion“ Feld in der „Assembly Information“ Dialog unter Projekteigenschaften eingeben), aber es funktioniert gut, wie diese auf jeder Maschine, auf die ich Zugriff hatte.

Wenn Sie sind völlig krank, wie Visual Studio tut Dinge, wenn von links nach ihren eigenen Geräten (Sie erwähnen die Albernheit seiner Pseudo-Zufallszahlen), geben dieses kleine Juwel eine Add-in einem Versuch. Es wird Ihr Leben verändern.

Andere Tipps

Der Screenshot zeigt Ihnen die Shell-Eigenschaftserweiterungshandler, dass zeigt die nicht verwaltete Version Ressource verwenden, die in den meisten EXE und DLL-Dateien eingebettet ist, einschließlich .NET diejenigen. Leider beginnend mit Vista, dass Handler nicht mehr angezeigt optionale Felder in dieser Ressource. Das Product Feld ist ein Standard ein, ist aber nicht die [Assembly]. Sie müßten das entsprechende Attribut in AssemblyInfo.cs hinzuzufügen. Zum Beispiel:

[assembly: AssemblyInformationalVersion ( "1.2.3.4")]

Nicht ein großer Name Spiel, leider. Wenn es fehlt, wird der Compiler den Wert des [Assembly] kopieren, das ist, wie Sie mit dem Stern gelandet ist.

Der Compiler emittiert tatsächlich das zusätzliche Feld in der Ressource. Sie können es mit Datei + Öffnen + Datei sehen, wählen Sie die Assembly, öffnen Sie die Version Knoten und doppelklicken Sie auf Ressource # 1:

alt text

Welche von generiert wurde:

[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyInformationalVersion("1.2.3.4")]
[assembly: AssemblyFileVersion("1.0.0.0")]

Es ist da, kann man einfach nicht in Explorer sehen. Schade, hoffentlich werden sie, dass ein Tag beheben. Beachten Sie auch die erzeugte [Assembly], die Revisionsnummer ist 18404. Es ist nicht zufällig, ich diese EXE, um 10:13 Uhr gebaut. Das war 18404 * 2 Sekunden seit Mitternacht.

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