Como parte de nosso processo de construção, preciso definir as informações de versão para todos os nossos binários compilados. Alguns dos binários já possuem informações de versão (adicionadas em tempo de compilação) e outros não.
Eu quero ser capaz de aplicar as seguintes informações:
- Nome da empresa
- Aviso de direitos autorais
- Nome do Produto
- Descrição do Produto
- Versão do arquivo
- Versão do produto
Todos esses atributos são especificados pelo script de construção e devem ser aplicados após a compilação. Esses são binários padrão (não assemblies) compilados com C ++ Builder 2007.
Como posso fazer isso?
UpdateResource
função, se a versão de atualização da tarefa no pe existenteRespostas:
Embora não seja um processo em lote, o Visual Studio também pode adicionar / editar recursos de arquivo.
Basta usar Arquivo-> Abrir-> Arquivo no .EXE ou .DLL. Isso é útil para corrigir informações de versão pós-compilação ou adicioná-las a arquivos que não têm esses recursos para começar.
fonte
Ao contrário de muitas das outras respostas, esta solução usa software totalmente gratuito.
Em primeiro lugar, crie um arquivo chamado
Resources.rc
assim:Em seguida, use GoRC para compilá-lo em um
.res
arquivo usando:(veja meu comentário abaixo para um espelho de
GoRC.exe
)Em seguida, use o Resource Hacker no modo CLI para adicioná-lo a um existente
.exe
:É isso aí!
fonte
ResourceHacker.exe -open Source.dll -save Changed.dll -action addoverwrite -resource Version.res
Além disso, o ResourceHacker pode compilar o próprio arquivo .rc:ResourceHacker.exe -open Version.rc -save Version.res -action compile
Ou você pode verificar o freeware StampVer para arquivos exe / dll Win32.
No entanto, só mudará as versões do arquivo e do produto se eles já tiverem um recurso de versão. Ele não pode adicionar um recurso de versão se não houver um.
fonte
rcedit é relativamente novo e funciona bem na linha de comando: https://github.com/atom/rcedit
Há também um módulo NPM que o envolve do JavaScript e uma tarefa do Grunt, caso você esteja usando o Grunt.
fonte
Que tal algo assim?
Disponível aqui com fontes completas .
fonte
/va /pv
opção). A versão apareceu corretamente no Windows Explorer, mas o último caractere estava faltando quando recuperado no código comVerQueryValue
. Para consertar o recurso inválido, fiz o seguinte: (1) Carregue a DLL no Resource Hacker. (2) Visualize o recurso de versão. (3) Compile (modifique algo e depois mude de volta para habilitar o botão). (4) Salvar.Existe esta ferramenta ChangeVersion [1]
Lista de recursos (do site):
Full Disclosure: Eu conheço o cara que escreveu essa ferramenta, trabalhei com ele. Mas isso também significa que sei que ele fabrica software de qualidade;)
[1] o link está morto. Parece haver uma versão espelhada em download.cnet.com .
fonte
"Change Version v2012.9.6.0 - (C)2007-2012 The-Software-Box.com This trial version has expired"
Estou fazendo isso sem nenhuma ferramenta adicional. Acabei de adicionar os seguintes arquivos ao meu projeto de aplicativo Win32.
Um arquivo de cabeçalho que define algumas constantes que podemos reutilizar em nosso arquivo de recursos e até mesmo no código do programa. Precisamos manter apenas um arquivo. Graças à equipe Qt que me mostrou como fazer isso em um projeto Qt, agora também funciona no meu aplicativo Win32.
---- [version.h] ----
---- [MyProjectVersion.rc] ----
fonte
#include <windows.h>
noresource.h
arquivo que é adicionado automaticamente. Esse arquivo não é regenerado (observe no topo do arquivo .rc que indica seu código gerado e pode ser modificado no designer).verpatch é bom, mas não lida com caracteres Unicode ...
tente ResourceLib
fonte
Existem várias ferramentas, mencionadas por muitas respostas excelentes, vou escolher uma.
Hacker de recursos
Baixei a versão mais recente ( 5.1.7 ) de [AngusJ]: Resource Hacker . Todas as informações necessárias podem ser encontradas nessa página (opções de linha de comando, scripts, ...). No passo a passo a seguir, irei operar em 2 executáveis (ratos de laboratório) que (por razões óbvias) copiei em meu cwd :
Antes de prosseguir, gostaria de mencionar que o ResourceHacker tem uma saída de terminal engraçada e os fragmentos de copiar / colar a seguir podem gerar um pouco de confusão.
1. Configuração
Isso é mais como uma etapa preliminar, para se familiarizar com o meio ambiente, para mostrar que não há negócios descolados acontecendo, ...
Como visto, os executáveis estão OK, eles funcionam bem e é assim que seus detalhes (com os quais nos preocupamos) se parecem:
2. Recursos
Os arquivos de recursos são arquivos de texto que contêm recursos. Um recurso (simplificado) tem:
Para obter mais detalhes, consulte [MS.Docs]: Sobre os arquivos de recursos . Existem muitas ferramentas (mencionadas nas respostas existentes) que facilitam a edição de arquivos de recursos como:
Mas, uma vez que é sobre Resource Hacker , e:
Vou usá-lo para esta etapa (
-action extract
)Em seguida, para que um recurso seja incorporado em um .exe ( .dll , ...), ele deve ser compilado em um formato binário, que se ajusta ao formato PE . Novamente, existem muitas ferramentas que podem fazer isso, mas como você provavelmente adivinhou, vou me limitar a Resource Hacker (
-action compile
).No seu caso não será necessário salvar e editar o arquivo de recurso, pois o arquivo já estará presente, fiz apenas para fins de demonstração. Abaixo está o arquivo de recurso após ser modificado (e, portanto, antes de ser compilado).
sample.rc :
3. Incorporar
Isso também será executado pelo Resource Hacker (
-action addoverwrite
). Como os .exe s já foram copiados, irei editar seus recursos no local.Como visto, tive que fazer um pequeno truque ( gainarie ) porque não posso (pelo menos acho que não posso) modificar o .exe durante o uso.
4. Teste
Esta é uma fase opcional, para garantir que:
E seus detalhes :
fonte
Há Resource Tuner Console da Heaventools Software.
Consulte especificamente a página Alterando Variáveis de Versão e Atualizando as Informações da Versão para obter mais detalhes.
fonte
Um pouco tarde para a festa, mas como eu estava procurando por ele (e talvez precise encontrá-lo novamente algum dia), aqui está o que fiz para incluir a versão, o nome da empresa, etc. em minha DLL C ++ no VS2013 Express:
Espero que isto ajude!
fonte
a resposta acima de @DannyBeckett me ajudou muito,
Coloquei o seguinte em um arquivo de lote e o coloco na mesma pasta onde ResourceHacker.exe e o EXE em que trabalho estão localizados e funciona perfeitamente. [você pode editá-lo para atender às suas necessidades]
[como uma nota lateral, usei o hacker de recursos também para compilar o arquivo res, não GoRC]
fonte
Na verdade, você pode tentar baixar o FVIE do Link de download e tentar editar as informações de qualquer arquivo .exe.
(OU)
Você pode baixar StampVer - Win32 Version Resource Stamping em Download Link, que é realmente útil para arquivos .exe do Windows.
(OU)
Você pode usar uma ferramenta de comando chamada RCEDIT . Baixe do link Github Source e, em seguida, crie usando o Visual Studio 2015 e você terá comandos específicos para alterar a versão dos arquivos .exe. Consulte o link do Documentos para ver os vários comandos disponíveis.
fonte
Esta é a melhor ferramenta que já vi para o trabalho, permite controle total sobre todos os recursos de arquivo, incluindo VersionInfo.
Veja: ResourceEditor de Anders Melander .
fonte