2009-03-14 7 views
1

Comment puis-je incrémenter la version dans les fichiers projet pour les projets delphi? J'utilise Delphi 10 pour le développement d'applications win32. Je compose de bdsproj, dpr & res fichiers pour un projet.Scripts de génération automatique

+0

Vous cherchez un moyen de changer automatiquement les numéros de version dans un grand nombre de projets sans trop de cliquer? Ou cherchez-vous une fonctionnalité d'auto-incrémentation dans laquelle la version change chaque fois que vous construisez le projet, comme dans VB? –

+1

Delphi 10 n'existe pas. Cela aide si vous utilisez une version réelle dans votre question afin que les gens sachent ce que vous utilisez. ("Delphi 10" serait Delphi 2006, je crois.) –

Répondre

4

Si vous utilisez Delphi pour créer votre application, vous pouvez activer l'incrémentation automatique du numéro de build sous les paramètres du projet.

Nous utilisons un utilitaire self-made pour générer une ressource de version (fichier rc) basée sur les valeurs d'un fichier ini. Ensuite, nous compilons le fichier rc dans un fichier res, que nous incluons dans le projet. Nous utilisons des scripts finalbuilder pour automatiser le processus. Je sais que finalbuilder a son propre support pour versionnumbers, mais nous ne l'utilisons pas. Je ne sais pas pourquoi, cependant ...

1

J'utilise un programme qui gère le numéro de version dans un fichier .ini et génère un fichier .res dans l'événement de pré-construction du projet. Ce fichier .res contient uniquement la version, pas l'icône. L'icône est contenue dans un fichier .res distinct. Les deux sont inclus dans le fichier DPR du projet:

{$R *_version.res} 
{$R *_icon.res} 

Seul le * __ fichier i_con.res est vérifié dans conntrol source, la version, comme dit ci-dessus est maintenu dans un fichier .ini, de sorte que les * _version.res fichier peut être généré chaque fois que nécessaire. Cela permet de se débarrasser de l'ennui du fichier .res et .dproj en constante évolution en raison de l'incrémentation du numéro de build. Oh, je viens de me rendre compte que vous avez dit "Delphi 10", que je pense être Delphi 2006. Cette version de Delphi n'avait pas d'événements pré et post-construction, donc vous devez appeler le programme pour maintenir la version toi même.

0

Si vous cherchez un moyen non-gui de faire cela alors je pense que si vous regardez dans le fichier bdsproj vous trouverez une section dans le xml où la version est écrite, vous pouvez le changer ici. La prochaine fois qu'il construira, il utilisera cette version.

+0

AFAIK c'est l'IDE qui régénère le fichier .res en utilisant les informations du fichier proj. Lors de la construction à partir de la ligne de commande (même en utilisant MSBuild), le fichier .res n'est pas régénéré, il utilise simplement celui qu'il trouve. –

2

J'utilise un outil de script de construction approprié FinalBuilder qui possède un ensemble de commandes de gestion de propriétés qui peuvent définir tous les éléments d'une construction sur la même version. Cela me donne la cohérence de numérotation à travers une construction, et une charge entière plus aussi. Si vous n'avez pas d'outil de construction approprié et que vous utilisez toujours des fichiers batch ou des fichiers équivalents, c'est le moment d'aller voir les options. Ça vaut vraiment le coup.

3

J'ai déjà utilisé un programme appelé StampVer, Vous devez déjà avoir les informations de version dans le fichier pour utiliser StampVer. StampVer est un logiciel gratuit mais pas Open Source.

La bonne chose à propos de stampver, c'est qu'il peut auto-incrémenter pour vous.

+3

+1 J'ai écrit stampver il y a 12 ans, étonné qu'il soit encore utilisé :) –

+0

@Paul oui ça s'habitue, merci! – kenny

0

DDevExtensions a un incrément de construction, je ne sais pas comment obtenir la version delphi 2006, mais je pense que cela existe et c'est très pratique.

0

Avez-vous besoin d'incrémenter le numéro de build lorsque vous compilez depuis l'EDI ou à l'extérieur? L'IDE peut l'incrémenter automatiquement, il suffit de vérifier l'indicateur dans les paramètres du projet. Incrémenter ce nombre en dehors de l'EDI n'est pas simple car il est stocké dans le fichier .res par défaut qui est géré et régénéré par l'EDI. Le compilateur de ligne de commande ne le modifiera pas. Il y a plusieurs façons de le modifier (comme l'expliquent d'autres réponses), et généralement cela fonctionne mieux avec un système de construction qui peut générer les numéros de build, surtout si plus d'un développeur travaille sur le projet. J'ai posté QC# 70564 problème pour demander que les informations de version peuvent être définies par le compilateur de ligne de commande.

Questions connexes