2 Stimmen

Dateiversion automatisch nach dem Kompilieren setzen

Gibt es ein Tool, das in eine .exe- oder .dll-Datei Informationen wie Dateiversion, Produktname, Copyright usw. einfügen kann?

Ich habe ein Tool namens StampVer aber es kann nur Ressourcen ändern, die bereits in der Datei selbst enthalten sind. Ich könnte es verwenden, müsste aber eine Reihe von Visual Studio-Projekten ändern, um einige Dummy-Informationen aufzunehmen, und das möchte ich natürlich lieber vermeiden.

2voto

Dmitry Punkte 6430

Sie können eine Header-Datei erstellen, die einige Dinge definiert, wie z.B. #define MAJOR_VERSION 2 y #define MINOR_VERSION 1 (dasselbe gilt für Build-Nummern und alles, was Sie dort brauchen). Dann, #include diese Header-Datei aus Ihrer .rc fichier.

Kommen wir nun zur Automatisierung des Prozesses. Ihr Build-Skript kann diese Header-Datei ausgeben und dabei verschiedene Werte inkrementieren. Nach einem erfolgreichen Build wird die Datei an das VCS übergeben und kann dann bei der nächsten Iteration verwendet werden. Es gibt Möglichkeiten, dies auch mit einfachen Mitteln zu erreichen .cmd Dateien mit Hilfe von Umgebungsvariablen, aber wenn Sie können, verwenden Sie etwas Anspruchsvolleres wie Perl/Python usw. für diese Aufgabe.

Dies funktioniert gut für die Produktion von freischaltbar Builds, und es ist nicht die beste Lösung, wenn Sie eine Build-Nummer bei jedem Build, den Sie auf Ihrem Entwicklungsrechner erstellen, inkrementieren müssen.

2voto

Warpin Punkte 6826

Ich habe schließlich eine Dummy-Ressourcenversion hinzugefügt und werde StampVer verwenden.

1voto

Hans Passant Punkte 894572

Wie viele Projekte haben Sie? Ich habe die Zeit gemessen, es dauert 3 Sekunden in Visual Studio. Rechtsklick auf das Projekt, Hinzufügen, Ressource, wählen Sie "Version", Neu.

0voto

Zac Punkte 3155

Welche Art von exe/dll erstellen Sie? Es gibt einige einfache Lösungen für .NET-Assemblies und einige schwierige Lösungen für nicht verwaltete Assemblies.

Für Baugruppen: http://www.codeproject.com/KB/dotnet/ManagingAssemblyVersions.aspx

Nicht gerade nach dem Bau, aber das ist es, was wir tun: Wir erstellen eine Include-Datei für C++ aus einer Batch-Datei und binden sie in den Build-Prozess ein. Die Include-Datei enthält ein Define, das in die Ressourcendatei aufgenommen wird.

Sie können auch Visual Studio verwenden, um Ressourcen in einer PE (unveränderte Binärdatei) zu ändern. Von Hand können Sie alle Versionsressourcen ändern.

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