Delphi - Deploy - Distribuição de aplicações

Distribuir uma aplicação para um ambiente diferente do desenvolvimento algumas vezes pode ser uma dor de cabeça, ainda mais se a aplicação é complexa e usa muitos componentes de terceiros. Outra situação que iremos abordar aqui, é sobre como resolver problemas de aplicações que foram desenvolvidas originalmente em uma plataforma e foram migrados para outra, compilam, mas não executam.

Para fazer isso é muito "simples", porém, pode ser um pouco trabalhoso.

Vamos começar então...

1. Verificando as DLLs utilizadas (apenas windows).
Para verificar as DLLs utilizadas pelo seu executável, usamos o utilitário ListDLLs distribuído pela própria Microsoft.

2. Resolvendo problemas de inicialização.
Ao distribuir a aplicação ou tentar executa-la em uma outra plataforma, podemos nos deparar com este problema, que basicamente faz a aplicação não abrir e não exibir nenhum erro, dificultando assim, o trabalho do programador.

2.1 Entendendo o problema.
Quando uma aplicação não inicia, podemos colocar um breakpoint na primeira linha do projeto e veremos que, em tempo de debug nem chegará nesta linha, por que? Porque a aplicação está passando por problemas antes, e a primeira linha na verdade não é ali, é no inicialization de todas as units que foram compiladas.

2.2 Resolvendo o problema.
Em tempo de debug resolver este problema é simples, pois ocorrera uma exceção, mas quando isto não é possível precisamos brincar um pouco com as suas units.
  • Defina uma nova pasta para suas DCUs.
  • Realize um build do seu projeto.
  • Crie um novo projeto.
  • Pegue todas as DCUs da nova pasta e coloque na uses do seu novo projeto.
    • Você pode fazer um dir *.dcu no prompt e mudar o .dcu por uma virgula fazendo um replace all na própria IDE do Delphi.
Você terá o mesmo problema da sua aplicação original, para resolver vamos assumir que não fazemos a minima ideia do porque a sua aplicação não inicializar, comece então removendo as units e testando a sua inicialização. Você verá que em algum momento funcionará, fazendo este jogo você descobrirá quais units estão afetando a execução da sua aplicação, e indo até a sua inicialização você entenderá qual é a sua dependência.

Muito bem, você tem alguma outra dica? Sinta-se a vontade para comentar.

Comentários

Postagens mais visitadas deste blog

Delphi - Teste automatizado + Maquina virtual

Delphi - Certificação Desenvolvedor