Dans le cadre de notre processus de construction, j'ai besoin de définir les informations de version pour tous nos binaires compilés. Certains binaires ont déjà des informations de version (ajoutées au moment de la compilation) et d'autres pas.
Je souhaite pouvoir appliquer les informations suivantes:
- Nom de la compagnie
- Copyright
- Nom du produit
- Description du produit
- Version du fichier
- Version de produit
Tous ces attributs sont spécifiés par le script de construction et doivent être appliqués après la compilation. Ce sont des binaires standard (et non des assemblys) compilés avec C ++ Builder 2007.
Comment puis-je faire ceci?
UpdateResource
fonction, si la version de mise à jour de la tâche dans leRéponses:
Bien qu'il ne s'agisse pas d'un processus par lots, Visual Studio peut également ajouter / modifier des ressources de fichiers.
Utilisez simplement Fichier-> Ouvrir-> Fichier sur le .EXE ou .DLL. C'est pratique pour corriger les informations de version après la construction ou pour les ajouter à des fichiers qui ne disposent pas de ces ressources pour commencer.
la source
Contrairement à de nombreuses autres réponses, cette solution utilise un logiciel totalement gratuit.
Tout d'abord, créez un fichier appelé
Resources.rc
comme ceci:Ensuite, utilisez GoRC pour le compiler dans un
.res
fichier en utilisant:(voir mon commentaire ci-dessous pour un miroir de
GoRC.exe
)Ensuite, utilisez Resource Hacker en mode CLI pour l'ajouter à un existant
.exe
:C'est tout!
la source
ResourceHacker.exe -open Source.dll -save Changed.dll -action addoverwrite -resource Version.res
En outre, ResourceHacker peut compiler le fichier .rc lui-même:ResourceHacker.exe -open Version.rc -save Version.res -action compile
Ou vous pouvez consulter le logiciel gratuit StampVer pour les fichiers Win32 exe / dll.
Cela ne changera que les versions du fichier et du produit si elles ont déjà une ressource de version. Il ne peut pas ajouter une ressource de version s'il n'en existe pas.
la source
rcedit est relativement nouveau et fonctionne bien depuis la ligne de commande: https://github.com/atom/rcedit
Il existe également un module NPM qui l'enveloppe de JavaScript et une tâche Grunt au cas où vous utiliseriez Grunt.
la source
Et quelque chose comme ça?
Disponible ici avec toutes les sources .
la source
/va /pv
option). La version apparaissait correctement dans l'Explorateur Windows mais le dernier caractère manquait lors de la récupération dans le code avecVerQueryValue
. Pour réparer la mauvaise ressource, j'ai fait ceci: (1) Chargez la DLL dans Resource Hacker. (2) Affichez la ressource de version. (3) Compilez (modifiez quelque chose puis changez-le pour activer le bouton). (4) Enregistrez.Il y a cet outil ChangeVersion [1]
Liste des fonctionnalités (du site Web):
Divulgation complète: Je connais le gars qui a écrit cet outil, je travaillais avec lui. Mais cela signifie aussi que je sais qu'il fabrique des logiciels de qualité;)
[1] le lien est mort. Il semble y avoir une version en miroir sur download.cnet.com .
la source
"Change Version v2012.9.6.0 - (C)2007-2012 The-Software-Box.com This trial version has expired"
Je le fais sans outil supplémentaire. Je viens d'ajouter les fichiers suivants à mon projet d'application Win32.
Un fichier d'en-tête qui définit certaines constantes que nous pouvons réutiliser sur notre fichier de ressources et même sur le code du programme. Nous n'avons besoin de maintenir qu'un seul fichier. Grâce à l'équipe Qt qui m'a montré comment le faire sur un projet Qt, cela fonctionne désormais également sur mon application Win32.
---- [version.h] ----
---- [MyProjectVersion.rc] ----
la source
#include <windows.h>
dans leresource.h
fichier qui est ajouté automatiquement. Ce fichier n'est pas régénéré (notez en haut du fichier .rc qu'il indique que c'est du code généré et qu'il peut être modifié dans le concepteur).verpatch est bon, mais ne gère pas les caractères unicode ...
essayez ResourceLib
la source
Il existe plusieurs outils, mentionnés par de nombreuses bonnes réponses, je vais en choisir un.
Pirate de ressources
J'ai téléchargé la dernière version ( 5.1.7 ) de [AngusJ]: Resource Hacker . Toutes les informations nécessaires se trouvent sur cette page (options de ligne de commande, scripts, ...). Dans la procédure pas à pas suivante, je vais utiliser 2 exécutables (rats de laboratoire) que j'ai copiés (pour des raisons évidentes) dans mon cwd :
Avant d'aller plus loin, je tiens à mentionner que ResourceHacker a une sortie de terminal amusante et que les fragments copier / coller suivants peuvent générer un peu de confusion.
1. Configuration
Cela ressemble plus à une étape préliminaire, pour se familiariser avec l'environnement, pour montrer qu'il n'y a pas d'activité funky en cours, ...
Comme on le voit, les exécutables sont OK, ils fonctionnent bien, et voici à quoi ressemblent leurs détails (dont nous nous soucions):
2. Ressources
Les fichiers de ressources sont des fichiers texte contenant des ressources. Une ressource (simplifiée) a:
Pour plus de détails, consultez [MS.Docs]: À propos des fichiers de ressources . Il existe de nombreux outils (mentionnés dans les réponses existantes) qui facilitent l'édition des fichiers de ressources comme:
Mais, puisqu'il s'agit de Resource Hacker , et:
Je vais l'utiliser pour cette étape (
-action extract
)Ensuite, pour qu'une ressource soit incorporée dans un .exe ( .dll , ...), elle doit être compilée sous une forme binaire, qui correspond au format PE . Encore une fois, il existe de nombreux outils qui peuvent y parvenir, mais comme vous l'avez probablement deviné, je vais m'en tenir à Resource Hacker (
-action compile
).Dans votre cas, l'enregistrement et l'édition du fichier de ressources ne seront pas nécessaires, car le fichier sera déjà présent, je l'ai juste fait à des fins de démonstration. En dessous se trouve le fichier de ressources après avoir été modifié (et donc avant d'être compilé).
sample.rc :
3. Incorporer
Cela sera également effectué par Resource Hacker (
-action addoverwrite
). Puisque les .exe sont déjà copiés, je vais modifier leurs ressources en place.Comme on le voit, j'ai dû faire un petit truc ( gainarie ) car je ne peux pas (du moins je ne pense pas pouvoir) modifier le .exe pendant son utilisation.
4. Test
Il s'agit d'une phase facultative, pour s'assurer que:
Et leurs détails :
la source
Il existe une console Resource Tuner de Heaventools Software.
Consultez spécifiquement la page Modification des variables de version et mise à jour des informations de version pour plus de détails.
la source
Un peu tard à la fête, mais comme je le cherchais (et j'aurais peut-être besoin de le retrouver un jour), voici ce que j'ai fait pour inclure la version, le nom de l'entreprise, etc. dans ma DLL C ++ sous VS2013 Express:
J'espère que cela t'aides!
la source
la réponse ci - dessus de @DannyBeckett m'a beaucoup aidé,
J'ai mis ce qui suit dans un fichier batch et je le place dans le même dossier où se trouvent ResourceHacker.exe et l'EXE sur lequel je travaille et cela fonctionne très bien. [vous pouvez le modifier en fonction de vos besoins]
[en remarque, j'ai également utilisé un pirate de ressources pour compiler le fichier res, pas GoRC]
la source
Vous pouvez en fait essayer de télécharger FVIE à partir du lien de téléchargement et essayer de modifier les informations de n'importe quel fichier .exe.
(OU)
Vous pouvez télécharger StampVer - Win32 Version Resource Stamping à partir du lien de téléchargement qui est vraiment utile pour les fichiers Windows .exe.
(OU)
Vous pouvez utiliser un outil de commande appelé RCEDIT . Téléchargez à partir du lien Github Source , puis créez à l'aide de Visual Studio 2015, puis vous disposez de commandes spécifiques pour modifier la version des fichiers .exe. Voir le lien Docs pour les différentes commandes disponibles.
la source
C'est le meilleur outil que j'ai vu pour le travail, permet un contrôle total sur toutes les ressources de fichiers, VersionInfo inclus.
Voir: ResourceEditor par Anders Melander .
la source