windows - software - tag editor download
¿Cómo configuro la información de la versión para un.exe,.dll existente? (11)
¿Qué tal algo así?
verpatch /va foodll.dll %VERSION% %FILEDESCR% %COMPINFO% %PRODINFO% %BUILDINFO%
Disponible aquí con fuentes completas .
Como parte de nuestro proceso de compilación, necesito establecer la información de la versión para todos nuestros binarios compilados. Algunos de los binarios ya tienen información de versión (agregada en tiempo de 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?
A diferencia de muchas de las otras respuestas, esta solución usa software completamente gratuito.
En primer lugar, crea un archivo llamado Resources.rc
como este:
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
{
BLOCK "StringFileInfo"
{
BLOCK "040904b0"
{
VALUE "CompanyName", "ACME Inc./0"
VALUE "FileDescription", "MyProg/0"
VALUE "FileVersion", "1.0.0.0/0"
VALUE "LegalCopyright", "© 2013 ACME Inc. All Rights Reserved/0"
VALUE "OriginalFilename", "MyProg.exe/0"
VALUE "ProductName", "My Program/0"
VALUE "ProductVersion", "1.0.0.0/0"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x409, 1200
}
}
A continuación, use GoRC para compilarlo en un archivo .res
usando:
GoRC /fo Resources.res Resources.rc
(ver mi comentario a continuación para un espejo de GoRC.exe
)
Luego use Resource Hacker en modo CLI para agregarlo a un .exe
existente:
ResHacker -add MyProg.exe, MyProg.exe, Resources.res,,,
¡Eso es!
Esta es la herramienta ChangeVersion [1]
Lista de características (del sitio web):
- interfaz de línea de comando
- soporte para archivos .EXE, .DLL y .RES
- actualizar FileVersion y ProductVersion en base a una máscara de versión
- agregar / cambiar / eliminar cadenas de teclas de versión
- ajustar las banderas del archivo (depuración, especial, privado, etc.)
- actualizar archivos de proyecto (.bdsproj | .bpr | .bpk | .dproj)
- agregar / cambiar el ícono de la aplicación principal
- usar archivo ini con configuración
- Soporte de Windows Vista (necesita elevación)
- fácil de integrar en un entorno de construcción continua
Divulgación completa: Conozco al tipo que escribió esta herramienta, solía trabajar con él. Pero esto también significa que sé que él hace software de calidad;)
[1] el enlace está muerto. Parece haber una versión duplicada en download.cnet.com .
Esta es la mejor herramienta que he visto para el trabajo, permite un control total sobre todos los recursos de archivos, incluyendo VersionInfo.
Ver: ResourceEditor por Anders Melander .
Hay Resource Tuner Console del software Heaventools.
Resource Tuner Console es una herramienta de línea de comandos que permite a los desarrolladores automatizar la edición de diferentes tipos de recursos en grandes cantidades de archivos ejecutables de Windows de 32 y 64 bits.
Consulte específicamente las Variables de versión de modificación y la página de Información de versión para obtener más detalles.
Lo estoy haciendo sin una herramienta adicional. 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] ----
#ifndef VERSION_H
#define VERSION_H
#define VER_FILEVERSION 0,3,0,0
#define VER_FILEVERSION_STR "0.3.0.0/0"
#define VER_PRODUCTVERSION 0,3,0,0
#define VER_PRODUCTVERSION_STR "0.3.0.0/0"
#define VER_COMPANYNAME_STR "IPanera"
#define VER_FILEDESCRIPTION_STR "Localiza archivos duplicados"
#define VER_INTERNALNAME_STR "MyProject"
#define VER_LEGALCOPYRIGHT_STR "Copyright 2016 [email protected]"
#define VER_LEGALTRADEMARKS1_STR "All Rights Reserved"
#define VER_LEGALTRADEMARKS2_STR VER_LEGALTRADEMARKS1_STR
#define VER_ORIGINALFILENAME_STR "MyProject.exe"
#define VER_PRODUCTNAME_STR "My project"
#define VER_COMPANYDOMAIN_STR "www.myurl.com"
#endif // VERSION_H
---- [MyProjectVersion.rc] ----
#include <windows.h>
#include "version.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_PRODUCTVERSION
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", VER_COMPANYNAME_STR
VALUE "FileDescription", VER_FILEDESCRIPTION_STR
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", VER_INTERNALNAME_STR
VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR
VALUE "LegalTrademarks1", VER_LEGALTRADEMARKS1_STR
VALUE "LegalTrademarks2", VER_LEGALTRADEMARKS2_STR
VALUE "OriginalFilename", VER_ORIGINALFILENAME_STR
VALUE "ProductName", VER_PRODUCTNAME_STR
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
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 arreglar la información de la versión después de la compilación o para agregarla a los archivos que no tienen estos recursos para empezar.
Un poco tarde para la fiesta, pero como la estaba buscando (y podría necesitar encontrarla de nuevo alguna vez), esto es lo que hice para incluir la versión, el nombre de la compañía, etc. en mi DLL de C ++ bajo VS2013 Express:
- Creado y editado un archivo dllproj.rc, como se indicó anteriormente.
- Se agregó la línea "rc.exe dllproj.rc" como un paso previo a la compilación en el proyecto DLL.
- Se agregó dllproj.res a la carpeta de recursos para el proyecto.
¡Espero que esto ayude!
verpatch es bueno, pero no maneja caracteres Unicode ...
prueba ResourceLib
rcedit es relativamente nuevo y funciona bien desde la línea de comandos: https://github.com/atom/rcedit
$ rcedit "path-to-exe-or-dll" --set-version-string "Comments" "This is an exe"
$ rcedit "path-to-exe-or-dll" --set-file-version "10.7"
$ rcedit "path-to-exe-or-dll" --set-product-version "10.7"
También hay un módulo de NPM que lo envuelve desde JavaScript y una tarea de Grunt en caso de que esté usando Grunt.