396 Stimmen

Kann ich die Build-Version der Datei automatisch erhöhen, wenn ich Visual Studio verwende?

Ich habe mich nur gefragt, wie ich automatisch den Build (und die Version?) meiner Dateien mit Visual Studio (2005) zu erhöhen.

Wenn ich die Eigenschaften von beispielsweise C:\Windows\notepad.exe Auf der Registerkarte Version wird "Dateiversion: 5.1.2600.2180" angezeigt. Ich möchte diese coolen Zahlen auch in der Version meiner DLLs haben, nicht in der Version 1.0.0.0, die, seien wir ehrlich, ein bisschen langweilig ist.

Ich habe ein paar Dinge ausprobiert, aber es scheint keine Out-of-Box-Funktion zu sein, oder vielleicht suche ich auch nur an der falschen Stelle (wie immer).

Ich arbeite hauptsächlich mit Webprojekten....

Ich habe mir beide angesehen:

  1. http://www.codeproject.com/KB/dotnet/Auto_Increment_Version.aspx
  2. http://www.codeproject.com/KB/dotnet/build_versioning.aspx

und ich konnte es nicht glauben, dass so viel Aufwand für eine Sache üblich ist.

EDIT: Es funktioniert nicht in VS2005, soweit ich das beurteilen kann ( http://www.codeproject.com/KB/dotnet/AutoIncrementVersion.aspx )

5voto

James Curran Punkte 98228

Setzen Sie die Versionsnummer auf "1.0.*" und die letzten beiden Zahlen werden automatisch mit dem Datum (in Tagen ab einem bestimmten Zeitpunkt) und der Uhrzeit (halbe Sekunden ab Mitternacht) ausgefüllt.

5voto

Alex Punkte 12071

Sie finden sie in Ihren Projekteigenschaften unter veröffentlichen.

http://screencast.com/t/Vj7rhqJO
(~ http://screencast.com/t/Vj7rhqJO )

5voto

Wie man die Version erhält {major}.{year}.1{date}.1{time}

Das hier ist ein bisschen experimentell, aber es gefällt mir. Inspiriert von Jeff Atwood @ CodingHorror ( Link ).

Die daraus resultierende Versionsnummer lautet 1.2016.10709.11641 (d. h. 2016-07-09 16:41), die Folgendes ermöglicht

  • die Null-Polsterung des armen Mannes (mit dem blöden Vorspann) 1 s)
  • fast menschlich lesbar . DateTime eingebettet in die Versionsnummer
  • die Major-Version nur für wirklich wichtige Änderungen zu verwenden.

Fügen Sie ein neues Element zu Ihrem Projekt hinzu, wählen Sie Allgemein -> Textvorlage und benennen Sie es wie folgt CustomVersionNumber und (falls zutreffend) kommentieren Sie die AssemblyVersion y AssemblyFileVersion en Properties/AssemblyInfo.cs .

Wenn Sie diese Datei speichern oder das Projekt erstellen, wird eine neue .cs Datei, die sich als Unterpunkt unter dem erstellten .tt Datei.

<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>

//
// This code was generated by a tool. Any changes made manually will be lost
// the next time this code is regenerated.
//

using System.Reflection;

<#
    var date = DateTime.Now;
    int major = 1;
    int minor = date.Year;
    int build = 10000 + int.Parse(date.ToString("MMdd"));
    int revision = 10000 + int.Parse(date.ToString("HHmm"));
#>

[assembly: AssemblyVersion("<#= $"{major}.{minor}.{build}.{revision}" #>")]
[assembly: AssemblyFileVersion("<#= $"{major}.{minor}.{build}.{revision}" #>")]

4voto

hal Punkte 1615

Torte unterstützt AssemblyInfo-Dateien Parcheando. Mit Kuchen in den Händen haben Sie unendlich viele Möglichkeiten, automatische Versionserhöhung zu implementieren.

Ein einfaches Beispiel für das Inkrementieren von Versionen, wie es der C#-Compiler macht:

Setup(() =>
{
    // Executed BEFORE the first task.
    var datetimeNow = DateTime.Now;
    var daysPart = (datetimeNow - new DateTime(2000, 1, 1)).Days;
    var secondsPart = (long)datetimeNow.TimeOfDay.TotalSeconds/2;
    var assemblyInfo = new AssemblyInfoSettings
    {
        Version = "3.0.0.0",
        FileVersion = string.Format("3.0.{0}.{1}", daysPart, secondsPart)
    };
    CreateAssemblyInfo("MyProject/Properties/AssemblyInfo.cs", assemblyInfo);
});

Hier:

  • Version - ist die Version der Baugruppe. Die beste Praxis ist es, die Hauptversionsnummer zu sperren und den Rest mit Nullen zu belassen (wie "1.0.0.0").
  • FileVersion - ist die Version der Assembly-Datei.

Beachten Sie, dass Sie nicht nur Versionen patchen können, sondern auch auch alle anderen notwendigen Informationen .

3voto

MusiGenesis Punkte 72729

Gehen Sie zu Projekt | Eigenschaften und dann Baugruppeninformationen und dann Baugruppenversion und setzen Sie einen * in das letzte oder vorletzte Feld (Sie können die Komponenten Major oder Minor nicht automatisch erhöhen).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X