9
votes

Comment puis-je modifier les ressources d'une EXE (description de fichier, icône, etc.) à l'aide d'un utilitaire de ligne de commande?

Toute l'histoire: J'ai créé un programme Fancy .NET qui dispose d'un installateur créé par le programme d'installation Visual Studio (VSI). Le VSI crée 2 fichiers (Setup.exe et MyProgramSetup.msi). Je comprends les raisons des deux fichiers nécessaires, cependant, je veux seulement distribuer un seul installateur exécutable aux utilisateurs. Je ne veux pas qu'ils voient 2 fichiers et doivent choisir entre eux.

Pour ce faire, j'ai fusionné les 2 fichiers dans une archive auto-extraite à l'aide d'IExpress (comme on le voit dans cette réponse: ). Cela fonctionne bien, cependant, l'archive auto-extraite créée a une icône laide et une info de fichier déroutant (la description du fichier est "extracteur auto-extracteur de l'armoire Win32" avec 43 espaces vides après elle).

i Besoin de remplacer l'icône avec mon personnalisé et de modifier certaines des propriétés du fichier telles que "Description", "Société", etc. Je voudrais que cela soit effectué automatiquement comme une étape de construction afin d'avoir un programme qui est une ligne de commande / console utilitaire serait génial.

J'ai cherché un moment maintenant et ne peut trouver qu'un seul programme qui fait exactement ce que je veux (console ResourceTuner: http://www.heavencools.com/command-line_resource_editor.htm ) Mais cela coûte un bras et une jambe et mon budget est de 0 $.

Est-ce que quelqu'un sait un meilleur moyen de réaliser ce que je veux ou de connaître un programme qui peut remplacer les ressources d'une exécutable sans avoir à utiliser une interface graphique?

Au fait, j'ai aussi essayé Sicomponents "Constructeur de ressources 3 qui ne peut même pas ouvrir l'exécutable et résedit qui se bloque simplement lorsque j'exécute la commande: xxx


0 commentaires

3 Réponses :


8
votes

Visual Studio peut les modifier si vous ouvrez le fichier exécutable. Je ne suis pas sûr s'il y a un moyen de le faire de la ligne de commande, cependant.

Il y a un décent article de codeProject qui traite des icônes (y compris les sauvegarder dans les fichiers EXE).

Nom de la société, Description, etc., font partie de la ressource de version. Un autre Article de codeProject couvre la mise à jour de la ressource de version, bien que je n'ai pas regardé cela un en profondeur.


1 commentaires

Votre deuxième lien (Verpatch) était parfait pour changer les ressources de la version. Open Source et seulement 93kb, excellent! J'ai utilisé la commande suivante: Verpatch.exe "blah setup.exe" / s entrepriseName "bla" / s FileDescription "bla" / s internomalname "bla" / sgalcopyright "blah" / s originalfilename "bla"



3
votes

Avez-vous regardé "Reshacker" aka 'Resource Hacker'? Il est principalement promu en tant qu'outil d'interface graphique, mais le fichier d'aide indique que toutes ses fonctionnalités sont accessibles à l'aide de scripts de ligne de commande. J'ai utilisé sa forme d'interface graphique pour changer d'icônes à l'intérieur d'EXE, et cela vous laissera également les autres ressources intégrées. Juste Google pour 'Resource Hacker', la version actuelle semble être 3.4.0


1 commentaires

J'ai pu utiliser Resourse Hacker pour remplacer l'icône principale en utilisant la commande suivante: reshacker.exe -addoveroverwrite "blah setup.exe", "bla setup.exe", "programme icon.ico", groupe d'icônes, mainicon, 0



5
votes

Répondre à la question des informations de la version du fichier, vous pouvez inclure vos propres informations de version dans le fichier iExpress .ED. Ce site fournit des détails supplémentaires sur les sections et attributs de fichiers iExpress. L'utilisation de la fonctionnalité intégrée semble plus facile que de post-traitement de l'exe de configuration.

Fondamentalement, dans le fichier .SED, incluez la référence VersionInfo dans la section Options. Ensuite, créez la section contenant vos informations de version. P>

[Options]
VersionInfo=VersionSection

[VersionSection]
FromFile= ;Uses the version info in this executable file
; or specify each attribute 
; or specify the FromFile and override individual attributes
FileDescription=
CompanyName=
FileVersion=
ProductVersion=
OriginalFilename=
LegalCopyright=
ProductName=
InternalName=


3 commentaires

Je modifie les fichiers SED comme celui-ci et j'ai enregistré les modifications, mais les détails modifiés ne sont pas reflétés sur l'EXE final. Dois-je aussi partager le fichier SED avec l'EXE à la machine ciblée pour voir les modifications?


@Jmat avez-vous ajouté le fichier .SED à votre projet de déploiement. Le fichier .SED n'est utilisé que pendant la phase de construction; Pas besoin de livrer ce fichier.


Le fichier .SED est généré par l'assistant IExpres pour moi avec le fichier EXE. Donc, c'est comme si nous devons éditer le fichier SED après avoir généré l'EXE ou je le fais dans le mauvais ordre? Actuellement, les étapes que je fais sont 1. Générer des fichiers EXE et SED à l'aide de l'outil IExpress et modifiez le fichier SED selon la réponse mentionnée. ci-dessus et enregistrer les modifications. Mais la modification des fichiers SED ne réfléchit pas au fichier EXE. Ma question ici Stackoverflow.com/Questtions/28313804/...