Builds/Kompilieren automatisch hoch zählen lassen - Geht das?



  • Hallo Zusammen,

    ich habe ein kleines Programm geschrieben. Dort habe ich ein Info Fenster mit eingebaut wo ich dann eine Versionsnummer mit ausgeben.

    Jetzt meine Frage:
    Kann ich diese Versionsnummer automatisch hoch zählen lassen?? Z.B. bei jedem kompilieren??

    Gruß
    EPMS



  • schon mal in die projektoptionen geschaut?



  • die nummer wird aber nur beim kompletten neu erstellen des projekts erhöht, nicht beim aktualisieren.



  • Ok, danke schön schonmal.

    Kann ich diese Zahl dann auch automatisch auf einem Formular mit ausgeben??

    Gruß
    EPMS



  • Beliah schrieb:

    die nummer wird aber nur beim kompletten neu erstellen des projekts erhöht, nicht beim aktualisieren.

    Außerdem hatte ich es immer wieder (sowohl mit BCB 4 als auch mit BCB 6), dass er bei erneutem öffnen des Projektes bzw. neu-kompilieren den Zähler einfach wieder runter gesetzt hat!

    Ich hab' mir dann so beholfen:
    Ich habe mir ein kleinst-projekt geschrieben, dass als einizge Aufgabe die Variable aus einer Datei ausliest, diese inkrementiert und wieder speichert (also die Start-Aufrufe mitzählt) und sich dann selbst beendet. Dieses habe ich dann einfach bei Programmstart starten lassen. Ist zwar dann die Anzahl der Starts, aber bei größeren Programmen mit längerem Entwicklungszyklus gleicht sich das ungefähr aus...

    @EPMS
    Du könntest höchstens die Attribute deiner Exe auslesen und den String da rausparsen, aber ansonsten mach's lieber so, wie ich es geschrieben habe 🙂
    Außerdem würdest du einen wirklich sehr ungenauen Wert bekommen, wiel du wirklich das ganze Projekt neu kompilieren musst um die Variable zu erhöhen (deshalb heißt es auch Build-Number in den Projektoptionen). Ich hatte da bei meinem Projekt schon nach knapp einer Woche eine Differenz von über 150!



  • Hallo,

    Bezüglich des Auslesens der Versionsinformationen gibt es ein Beispielprojekt beim BCB. Zu finden unter:
    $(BCB)\Examples\Controls\VersionInfo
    Außerdem interessant
    http://www.bytesandmore.de/rad/cpp/snipp/sc06001.php



  • Ich würde das trotzdem hardkodiert machen... sonst könnte auch jeder 08/15-Cracker die Versionsinfos manipulieren und das würde sich gleichzeitig auf das Verhalten des Programms auswirken. OK, das könnte man Hardkodierung auch, aber da steckt dann schon etwas mehr dahinter 🙂



  • Ich würde es gar nicht machen und den Zähler einfach beim nächsten Release per Hand setzen. Ist doch wurscht, ob das 99 oder 6385, Hauptsache die Nummer ist höher als beim vorherigen Release.



  • @Reyx,

    wie genau hast du das denn gemacht?? Kannst mir da mal ein Beispiel geben??

    Gruß
    EPMS



  • Naja, du könntest z.B. im OnCreate-Event deines Forms folgendes schreiben (muss ja nicht gleich ein externes Programm sein):

    #include <inifiles.hpp>
    
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    TIniFile *ini = new TIniFile(ExtractFileDir(Application->ExeName)+"\\builds.ini");
    ini->WriteInteger("data", "build", (ini->ReadInteger("data", "build", 0) + 1));
    delete ini;
    }
    

    Dann hast du in der builds.ini im Hauptverzeichnis deines Programmes immer die Anzahl, die das Programm gestartet wurde. Du musst nur daran denken, den Code beim FinalRelease zu entfernen!


Anmelden zum Antworten