Como parte de nuestro proceso de compilación, necesito configurar la información de la versión para todos nuestros binarios compilados. Algunos de los binarios ya tienen información de la versión (agregada en el momento de la compilación) y otros no.
Quiero poder aplicar la siguiente información:
- nombre de empresa
- Aviso de copyright
- nombre del producto
- Descripción del producto
- Versión del archivo
- version del producto
Todos estos atributos están especificados por el script de compilación y deben aplicarse después de la compilación. Estos son binarios estándar (no ensamblados) compilados con C ++ Builder 2007.
¿Cómo puedo hacer esto?
UpdateResource
función, si la tarea actualiza la versión en el pe existenteRespuestas:
Si bien no es un proceso por lotes, Visual Studio también puede agregar / editar recursos de archivos.
Simplemente use Archivo-> Abrir-> Archivo en .EXE o .DLL. Esto es útil para corregir la información de la versión después de la compilación o agregarla a archivos que no tienen estos recursos para empezar.
fuente
A diferencia de muchas de las otras respuestas, esta solución utiliza software completamente gratuito.
En primer lugar, cree un archivo llamado
Resources.rc
así:A continuación, use GoRC para compilarlo en un
.res
archivo usando:(mira mi comentario a continuación para ver un espejo de
GoRC.exe
)Luego use Resource Hacker en modo CLI para agregarlo a un existente
.exe
:¡Eso es!
fuente
ResourceHacker.exe -open Source.dll -save Changed.dll -action addoverwrite -resource Version.res
Además, ResourceHacker puede compilar el archivo .rc en sí mismo:ResourceHacker.exe -open Version.rc -save Version.res -action compile
O puede consultar el programa gratuito StampVer para archivos exe / dll de Win32.
Sin embargo, solo cambiará las versiones del archivo y del producto si ya tienen un recurso de versión. No puede agregar un recurso de versión si no existe uno.
fuente
rcedit es relativamente nuevo y funciona bien desde la línea de comandos: https://github.com/atom/rcedit
También hay un módulo NPM que lo envuelve desde JavaScript y una tarea Grunt en caso de que esté usando Grunt.
fuente
¿Y algo como esto?
Disponible aquí con fuentes completas .
fuente
/va /pv
opción). La versión apareció correctamente en el Explorador de Windows, pero faltaba el último carácter cuando se recuperó en el código conVerQueryValue
. Para arreglar el recurso defectuoso, hice esto: (1) Cargue la DLL en Resource Hacker. (2) Ver el recurso de la versión. (3) Compilar (modificar algo y luego volver a cambiarlo para habilitar el botón). (4) Guardar.Existe esta herramienta ChangeVersion [1]
Lista de características (del sitio web):
Divulgación completa: conozco al tipo que escribió esta herramienta, solía trabajar con él. Pero esto también significa que sé que hace software de calidad;)
[1] el enlace está muerto. Parece haber una versión reflejada en download.cnet.com .
fuente
"Change Version v2012.9.6.0 - (C)2007-2012 The-Software-Box.com This trial version has expired"
Lo estoy haciendo sin herramientas adicionales. Acabo de agregar los siguientes archivos a mi proyecto de aplicación Win32.
Un archivo de encabezado que define algunas constantes que podemos reutilizar en nuestro archivo de recursos e incluso en el código del programa. Solo necesitamos mantener un archivo. Gracias al equipo de Qt que me mostró cómo hacerlo en un proyecto Qt, ahora también funciona en mi aplicación Win32.
---- [version.h] ----
---- [MyProjectVersion.rc] ----
fuente
#include <windows.h>
en elresource.h
archivo que se agrega automáticamente. Ese archivo no se regenera (tenga en cuenta que en la parte superior del archivo .rc indica su código generado y se puede modificar en el diseñador).verpatch es bueno, pero no maneja caracteres Unicode ...
prueba ResourceLib
fuente
Hay varias herramientas, mencionadas por muchas respuestas excelentes, elegiré una.
Hacker de recursos
Descargué la última versión ( 5.1.7 ) de [AngusJ]: Resource Hacker . Toda la información necesaria se puede encontrar en esa página (opciones de línea de comandos, scripts, ...). En el siguiente tutorial voy a operar en 2 ejecutables (ratas de laboratorio) que (por razones obvias) he copiado en mi cwd :
Antes de continuar, quiero mencionar que ResourceHacker tiene una salida de terminal divertida , y los siguientes fragmentos de copiar / pegar pueden generar un poco de confusión.
1. Configuración
Esto es más como un paso preliminar, para familiarizarse con el medio ambiente, para demostrar que no hay negocios extravagantes, ...
Como se ve, los ejecutables están bien, funcionan bien y así es como se ven sus Detalles (que nos preocupan):
2. Recursos
Los archivos de recursos son archivos de texto que contienen recursos. Un recurso (simplificado) tiene:
Para obtener más detalles, consulte [MS.Docs]: Acerca de los archivos de recursos . Hay muchas herramientas (mencionadas en las respuestas existentes) que facilitan la edición de archivos de recursos como:
Pero, dado que se trata de Resource Hacker y:
Lo voy a usar para este paso (
-action extract
)A continuación, para que un recurso se incruste en un .exe ( .dll , ...), debe compilarse en un formato binario, que se ajuste al formato PE . Nuevamente, hay muchas herramientas que pueden lograr esto, pero como probablemente adivinaste, me quedaré con Resource Hacker (
-action compile
).En su caso, no será necesario guardar y editar el archivo de recursos, ya que el archivo ya estará presente, solo lo hice para fines de demostración. Debajo está el archivo de recursos después de ser modificado (y por lo tanto antes de ser compilado).
sample.rc :
3. Insertar
Esto también lo realizará Resource Hacker (
-action addoverwrite
). Como los .exe ya están copiados, editaré sus recursos en su lugar.Como se vio, tuve que hacer un pequeño truco ( gainarie ) ya que no puedo (al menos no creo que pueda) modificar el .exe mientras está en uso.
4. Prueba
Esta es una fase opcional, para asegurarse de que:
Y sus detalles :
fuente
Hay Resource Tuner Console del software Heaventools.
Consulte específicamente la página Cambiar las variables de versión y actualizar la información de la versión para obtener más detalles.
fuente
Un poco tarde para la fiesta, pero como lo estaba buscando (y podría necesitar encontrarlo nuevamente en algún momento), esto es lo que hice para incluir la versión, el nombre de la empresa, etc.en mi DLL de C ++ bajo VS2013 Express:
¡Espero que esto ayude!
fuente
la respuesta anterior de @DannyBeckett me ayudó mucho,
Pongo lo siguiente en un archivo por lotes y lo coloco en la misma carpeta donde se encuentran ResourceHacker.exe y el EXE en el que trabajo y funciona excelente. [puede editarlo para que se ajuste a sus necesidades]
[como nota al margen utilicé el hacker de recursos también para compilar el archivo res, no GoRC]
fuente
De hecho, puede intentar descargar FVIE desde el enlace de descarga e intentar editar la información de cualquier archivo .exe.
(O)
Puede descargar StampVer - Win32 Version Resource Stamping desde el enlace de descarga, que es realmente útil para archivos .exe de Windows.
(O)
Puede utilizar una herramienta de comando llamada RCEDIT . Descargue desde el enlace de Github Source y luego compile usando Visual Studio 2015 y luego tendrá comandos específicos para cambiar la versión de los archivos .exe. Consulte el enlace de Documentos para ver varios comandos disponibles.
fuente
Esta es la mejor herramienta que he visto para el trabajo, permite un control total sobre todos los recursos de archivos, incluido VersionInfo.
Ver: ResourceEditor por Anders Melander .
fuente