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 )

2voto

Maxcelcat Punkte 151

Ändern Sie die AssemblyInfo funktioniert in VS2012. Es scheint seltsam, dass es nicht mehr Unterstützung für diese in Visual Studio, man würde denken, dies war ein grundlegender Teil der Build/Release-Prozess.

2voto

Atiris Punkte 2469

Vielleicht können Sie für diese Aufgabe einen Code wie den folgenden verwenden:

    private bool IncreaseFileVersionBuild()
    {
        if (System.Diagnostics.Debugger.IsAttached)
        {
            try
            {
                var fi = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory).Parent.Parent.GetDirectories("Properties")[0].GetFiles("AssemblyInfo.cs")[0];
                var ve = System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location);
                string ol = ve.FileMajorPart.ToString() + "." + ve.FileMinorPart.ToString() + "." + ve.FileBuildPart.ToString() + "." + ve.FilePrivatePart.ToString();
                string ne = ve.FileMajorPart.ToString() + "." + ve.FileMinorPart.ToString() + "." + (ve.FileBuildPart + 1).ToString() + "." + ve.FilePrivatePart.ToString();
                System.IO.File.WriteAllText(fi.FullName, System.IO.File.ReadAllText(fi.FullName).Replace("[assembly: AssemblyFileVersion(\"" + ol + "\")]", "[assembly: AssemblyFileVersion(\"" + ne + "\")]"));
                return true;
            }
            catch
            {
                return false;
            }
        }
        return false;
    }

und rufen es beim Laden des Formulars auf.
Mit diesem Code können Sie jeden Teil der Dateiinfo in AssemblyInfo.cs aktualisieren (aber Sie müssen die "Standard"-Verzeichnisstruktur verwenden).

2voto

devstuff Punkte 8197

Verwenden Sie die AssemblyInfo-Aufgabe aus den MSBuild Community Tasks ( http://msbuildtasks.tigris.org/ ) Projekt, und integrieren Sie es in Ihre .csproj/.vbproj-Datei.

Es gibt eine Reihe von Optionen, darunter eine, die die Versionsnummer mit dem Datum und der Uhrzeit verknüpft.

Empfohlen.

2voto

SeaDrive Punkte 3892

Zum jetzigen Zeitpunkt, für meine Bewerbung,

string ver = Application.ProductVersion;

devuelve ver = 1.0.3251.27860

Der Wert 3251 ist die Anzahl der Tage seit dem 1.1.2000. Ich verwende ihn, um das Erstellungsdatum der Version auf dem Startbildschirm meiner Anwendung anzuzeigen. Wenn ich mit einem Benutzer spreche, kann ich nach dem Erstellungsdatum fragen, was einfacher zu kommunizieren ist als eine lange Zahl.

(Ich bin eine Ein-Mann-Abteilung, die ein kleines Unternehmen unterstützt. Dieser Ansatz mag für Sie nicht funktionieren.)

2voto

Telson Alva Punkte 812

Ich habe eine Anwendung entwickelt, die die Dateiversion automatisch erhöht.

  1. Herunterladen Anmeldung

  2. Fügen Sie die folgende Zeile in die Befehlszeile des Pre-Build-Events ein

    C:\temp\IncrementFileVersion.exe $(SolutionDir) \Properties\AssemblyInfo.cs

  3. Erstellen Sie das Projekt

Der Einfachheit halber gibt die Anwendung nur Meldungen aus, wenn ein Fehler aufgetreten ist. Um zu überprüfen, ob es funktioniert hat, müssen Sie die Dateiversion in "Assembly Information" überprüfen.

Hinweis: Sie müssen die Projektmappe in Visual Studio neu laden, damit die Schaltfläche "Assembly Information" die Felder ausfüllt, Ihre Ausgabedatei enthält dann jedoch die aktualisierte Version.

Für Anregungen und Wünsche senden Sie mir bitte eine E-Mail an telson_alva@yahoo.com

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