Pergunta

Estou criando um aplicativo RCP Eclipse.

Estou seguindo o conselho de Joel no seguinte artigo "Construções diárias são seus amigos":

http://www.joelonsoftware.com/articles/fog0000000023.html

Então, eu escrevi um bom script de construção que cria um produto RCP Eclipse e que executa testes de unidade no código. Todos os resultados são distribuídos para a lista do desenvolvedor (após alguns resmungos). Agora, na minha próxima etapa, quero criar o pacote de configuração que normalmente criei manualmente usando o compilador de configuração do Inno.

A questão é: como eu ficaria por aí criando este pacote automaticamente? Acho que posso gerar o arquivo de configuração do Inno automaticamente a partir da Ant e, em seguida, invocar o compilador da linha de comando, mas não sei se isso é possível.

Alguma dica para esta tarefa? Talvez qualquer outro aplicativo de configuração que possa ser usado da Ant?

Foi útil?

Solução

Claro que seu projeto fácil, Inno é um arquivo de texto sem formatação, para que você possa editar o script do set -Script facilmente pela ANT, no entanto, eu recomendaria criar um pequeno arquivo de inclusão separado pelo seu script. Você pode armazenar "variáveis", como o número de versão+compilação que você mostra no início da configuração.

Coloque esta linha no seu Setupper:

#include "settings.txt"

e fazer configurações.txt tem algo assim

#define myver=xxx.xxx
#define tags

Agora você não precisa tocar no código real do script de construção.

Abaixo está um snippet do meu script de compilação para compilar o set -super. Você precisa executar o arquivo em lote de formiga assim:

<exec dir="." executable="cmd" os="Windows NT">
  <arg line="/c build.bat"/>
</exec>

amostra em lote build.bat:

set isxpath="c:\program files\inno setup 5"
set isx=%isxpath%\iscc.exe
set iwz=myproj.iss
if not exist %isx% set errormsg=%isx% not found && goto errorhandler
%isx% "%iwz%" /O"%buildpath%" /F"MySetupper.exe" >>%logfile%
goto :eof

Outras dicas

Outro belo truque ao automatizar o edifício do instalador é usar o GetFileVersion Macro pré -processador (ISPP). Dessa forma, você não terá que duplicar os números de versão de seus arquivos (binários) em forma de codificação (como no Tom's settings.txt) - O compilador do instalador simplesmente o lerá a partir dos recursos da versão dos arquivos dessa maneira. Por exemplo:

#define AppName "My App"
#define SrcApp "MyApp.exe"
#define FileVerStr GetFileVersion(SrcApp)
#define StripBuild(str VerStr) Copy(VerStr, 1, RPos(".", VerStr)-1)
#define AppVerStr StripBuild(FileVerStr)

[Setup]
AppName={#AppName}
AppVersion={#AppVerStr}
AppVerName={#AppName} {#AppVerStr}
UninstallDisplayName={#AppName} {#AppVerStr}
VersionInfoVersion={#FileVerStr}
VersionInfoTextVersion={#AppVerStr}
OutputBaseFilename=MyApp-{#FileVerStr}-setup

Além disso, você pode encaminhar símbolos para o compilador através do /d Switch de linha de comando, por exemplo:

iscc.exe /dSpecialEdition ...

e então usá -los posteriormente em ifdefs para criar diferentes tipos de instalador (Exemplo estúpido a seguir):

[Registry]
#ifdef SpecialEdition
Root: HKLM; Subkey: Software\MyCompany\MyApp; ValueName: SpecialEdition; ValueType: dword; ValueData: 1 ...
#endif
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top