Vous êtes sur la page 1sur 11

VBMania

Visual basic 6
Gerando pacotes de instalação.

Escrito por:
Daniel Weber
wweber@brturbo.com.br

Publicado em Novembro / 2005

http://www.vbmania.com.br
Página 1 de 11
VBMania
Com certeza, esta é uma das maiores dificuldades que muitos programadores encontram,
sejam eles novatos ou até mesmo experientes, pois quem nunca se deparou com os erros
causados pelas “DLL’s”, na verdade este medo que até pouco tempo também me assombrava, foi
aos poucos sendo desmistificado, hoje encontramos bons geradores de setup, sejam eles de
terceiros, gratuitos ou pagos.
Mas ainda o gerador, que apesar de ser muito criticado e até as vezes odiado por
programadores, mas confiável ainda é o Package & Deployment Wizard, que acompanha o Visual
Basic, as suas desvantagens em relação a outros geradores começa pelo seus textos em inglês, a
telona azul, as poucas ou quase mínimas condições de configurações como ícones e textos, mas
em contrapartida é um ótimo gerador para quem ainda não tem pleno conhecimento de quais dll´s
e run times, que o seu sistema desenvolvido irá necessitar para que funcione perfeitamente, e olha
que o Vb é um dos sistemas de desenvolvimento que mais usa run times, por esse motivo
acredito, que apesar de tudo no mínimo seria interessante, utilizar o PW, inicialmente nem que for
apenas para definir todos os arquivos e componentes necessários, para que o seu sistema rode
normalmente em qualquer máquina cliente.
Portanto iremos inicialmente conhecer as melhores táticas e dicas para que não se perca
na hora de instalar o seu sistema no cliente, vamos a luta. O sistema de geração dos pacotes é um
pouco complexo e na realidade começa desde o seu projeto com a configuração das variáveis
certas para que se ganhe tempo e desempenho, vamos dividir o processo nas seguintes etapas:

1-configuração dos padrões do arquivo executável


2-gerando os pacotes com o Package & Deployment Wizard
3-alterando os últimos detalhes na lista de setup

1-configuração dos padrões do arquivo executável


Entrando nas propriedades do projeto, pode-se alterar algumas propriedades tornando o
executável a ser gerado com algumas opções de velocidade ou tamanho.
Será apresentada uma tela, com cinco guias:
General, Make, Compile, Component, Debugging.

Opções da guia General:


Project Type – define o tipo projeto que você ira compilar ou definir um comando actvex, se
for um projeto de acesso a dados, deixe sempre por padrão definido como Standart EXE
Startup object – define qual será o form inicial de sua aplicação
Project Name – define o nome do seu projeto

http://www.vbmania.com.br
Página 2 de 11
VBMania

Opções da guia Make:


Version number -pode-se definir a versão do sistema, revisão e etc...
Title -o titulo da sua aplicação
Icon – selecione o form que contem o ícone que devera ser apresentado em sua aplicação
Comments – algum comentário que deseje incluir sobre o sistema desenvolvido
Company Name – o nome de sua empresa ou de quem desenvolveu o sistema

Opções da guia Compile:


Compile P-Code – compila o seu programa em um pseudo código tornando o projeto de
instalação (os pacotes menores) porem o resultando do executável final é mais lento
Compile Native Code - o Native gera um próprio código de interpretação da máquina, ou
seja é maior e mais rápido, no código nativo temos várias outras opções de compilação
Optimize for Fast Code – código executável mais rápido (aconselhável)
Optimize for Small Code - código executável menor e mais lento
No optimization - sem nenhum tipo de preferência
Advanced Optimizations – algumas opções “a mais” que deixarão o seu executável,
melhorado...

http://www.vbmania.com.br
Página 3 de 11
VBMania
Opções da guia Avançada:
Assume No Alising – se você não utiliza argumentos ByRef (que fazem referencia a
mesma variável), ative essa opção para tornar mais rápido o seu executável
Remove Array Bounds Checks – desativa a verificação de arrays, portanto se você não
utiliza comandos do tipo array marque esta opção...
Remove Integer Overflow Checks – desativa a verificação de valores numéricos, tais como
números Integer, Byte, Currency, essa opção agiliza cálculos porem caso não tenha sido
referenciado as variáveis corretamente poderá causar erros de cálculos, confundindo o sistema.
Remove Floating Point Error Checks - deixa de verificar variáveis de ponto flutuante como
Single e Double, porém essa função deverá ser previamente definida com variáveis no seu projeto
Allow Unrounded Floating Point Operations - realiza a comparação de valores obtidos por
cálculos entre variáveis de ponto flutuantes, antes do arredondamento, não utilize esta opção caso
o seu sistema precise de uma precisão de calculo acima de 04 dígitos
Remove Safe Pentium™ FDIV Checks - desativa o código especial criado para a
verificação de erros por ponto flutuantes, em alguns processadores mais antigos da pentium.

As guias Component e Debugging, não serão comentadas.


Para se gerar o executável basta clicar no menu File e Make nome do projeto, como
mostra a figura abaixo.

Pronto o seu sistema estaria pronto a ser utilizado fora do ambiente de desenvolvimento do
Visual basic, porem, a sua máquina contem todas a DLL’s, necessárias para o funcionamento, mas
no seu cliente não para isso que iremos gerar os pacotes de instalação através do Package &
Deployment Wizard, carregando todas as dll’s necessárias.

2-gerando os pacotes com o Package & Deployment Wizard


Particularmente, neste exemplo eu estou utilizando o sistema DAO 3.6 e para alguns
relatórios o sistema ADO (via DataEnvironment), portanto estaremos utilizando um projeto com
ambas as tecnologias, porem caso você venha a utilizar o método DAO 2.51/3.51 não irá mudar
muita coisa, em partes do processo serão mostradas algumas telas que só serão exibidas caso
esteja usando uma referencia abaixo do DAO 3.6, porem com alguma experiência que possuo já
verifiquei muitas vezes que ao gerar um pacote diretamente com a DAO 3.6, pode vir a causar
problemas futuros, na instalação, portanto eu aconselho, gerar o executavel antes, depois alterar a
referencia da DAO para 3.51 e gerar os pacotes, assim apenas incluindo a dll DAO360.Dll, no

http://www.vbmania.com.br
Página 4 de 11
VBMania
projeto, aproveitamos também para criar uma subpasta chamada ins, esta servirá para guardar os
arquivos de instalação gerados pelo PW.

Primeiro passo ao abrir o PW aparecerá uma tela conforme monstrada abaixo, na caixa
Active Project:, é mostrado o caminho e o projeto que será realizado o “empacotamento dos
arquivos” para a geração do Setup, confira se estiver tudo correto clique em Package.

Caso não tenha ainda gerado o arquivo executável a tela abaixo será mostrada, onde terá a opção
de compilar o programa, criar o arquivo executável, como nós o geramos anteriormente com a ref
DAO3.6, ele já existe, basta procurá-lo clicando em “Browse”.

Logo em seguida será apresenta a tela abaixo, clique na opção:


Standart Setup Package – que gera o processo através do executável setup.

Nesta etapa definimos onde serão gerados os pacotes e todos os arquivos de suporte,
conforme mencionado anteriormente, iremos selecionar a pasta ins.

http://www.vbmania.com.br
Página 5 de 11
VBMania

Como expliquei no inicio do processo quando definimos a referencia DAO 2.51/3.51 ou


3.51, o PW nos oferece os modos de conexão que poderão ser adicionados ao setup, o mesmo
não é mostrado qndo se cria um pacote diretamente através da ref. DAO 3.6, selecione a opção Jet
2.X:. (Caso não esteja utilizando a referencia DAO 2.51/3.51 ou DAO 3.51 está tela não ira
aparecer e iremos direto para a tela seguinte, é neste ponto que comento, que pode gerar erros
futuros para quem trabalha com o metodo DAO.)

Como foi explicado no inicio este projeto utiliza os dois tipos de conexão DAO e ADO, a
tela abaixo, mostra a lista de arquivos os quais os projeto necessita de tais informações para pleno
funcionamento, esta tela indica se algumas das dll´s carregadas, não são de uso obrigatório pelo

http://www.vbmania.com.br
Página 6 de 11
VBMania
sistema, no caso a dll´s msado20.tlb refere-se a biblioteca Microsoft de conexão via ADO, a
DAO360.dll, referente ao Biblioteca DAO 3.6.
Poderiamos ter dll´s de terceiros que foram utilizadas em seu projeto e não fazem parte do
pacote típico do visual basic, os arquivos marcados serão considerados como dispensáveis para o
perfeito funcionamento do sistema, portanto não marque nada, ou preste muita atenção ao marcar
(a tela abaixo foi gravada de outro projeto onde carrega automaticamente a dll DAO360.dll, como
no inicio foi comentado para que o PW carregue todas configurações da DAO, é necessário definir
a referencia a DAO 3.51).

Dependendo do seu projeto poderá ser mostrada esta tela abaixo ou não, nela contém
informações sobre ocx´s ou dll´s, cujo seu sistema depende da informação atualizada de tais
arquivos.

A próxima tela mostra a lista com todos os componentes (ocx´s e dll´s) que compõem o
processo de setup, nesta fase de instalação, poderá ser incluído outros arquivos, como o próprio
banco de dados clicando no botão Add...

Nesta fase você poderá escolher se quer montar um processo de setup, em um único
pacote (caso você se utilizará de um CD ROM, ou de vários disquetes de instalação).

http://www.vbmania.com.br
Página 7 de 11
VBMania

Aqui você seleciona o nome do titulo de instalação que será mostrado no processo de
setup na maquina do cliente.

Nesta tela informamos em qual grupo de ícones e em qual diretório serão gravados, os
atalhos para acesso ao programa.

Agora informamos o local onde serão gravados os arquivos que compõem o setup, de
preferência não altere nenhum dado de tais arquivos, apenas o caminho ao banco de dados.

http://www.vbmania.com.br
Página 8 de 11
VBMania

É informado uma lista com possíveis arquivos compartilhados, ou seja, caso haja uma
desinstalação o sistema irá verificar tais arquivos antes de retirá-los, como o arquivo executável faz
referencia apenas a nossa instalação não marque nada e clicamos em Next.

Por fim podemos definir um nome para batizar o script de instalação, sem muita
importância, a não ser que você deseje salvá-lo para futuras verificações (este processo se refere
ao script e não a geração dos pacotes, portanto não afeta em nada o processo). Após o PW,
gerará os pacotes de instalação, em seguida será mostrada a lista do script, clique em close, e
voltamos para a tela inicial do PW, onde novamente clicamos em Close.

http://www.vbmania.com.br
Página 9 de 11
VBMania
3-alterando os últimos detalhes na lista de setup
Na pasta ins, temos os seguintes arquivos:
Setup.exe - este é o arquivo gerado de setup
Setup.lst - esta é alista que o gerador ira seguir nela contem as dlls, ocx, onde
gravar onde registrar
SulcabosP.Cab - neste arquivo Cab contem todos os arquivos para realizar o setup
Na pasta Support – estão todos os arquivos contidos no arquivo comprimido CAB caso
você queira utilizar um outro sistema de gerador de setup basta copiar os arquivos que estão
dentro desta pasta.

Os sistemas de dll´s da Microsoft contem um pequeno bug, pelo menos eu encaro desta
forma, trata-se do arquivo Oleaut32.dll.
Este arquivo contem informações sobre o sistema ou seja ele “carrega configurações” ,
especificas do sistema operacional usado no computador, então alguns prováveis erros gerados
pelo PW se deve a este “amiguinho”, o porquê do erro; digamos que você tenha gerado o seus
pacotes de instalação em um WinXP e ira instalar em uma maquina com Win 98, o arquivo em
questão do XP, possui algumas características funcionais que foram criadas depois do Win98,
portanto tais novidades irão confundir o Win98 no momento da instalação, podendo desde sumir
arquivos como não poder utilizar alguns executáveis do sistema operacionais, tais como Internet
Explorer.
O que iremos fazer é editar o arquivo SETUP.LST, eliminando a linha que contem a
informação sobre o Oleaut32.dll, fazendo com o novo arquivo oleaut32, não seja copiado, tão
pouco registrado, desta forma mantendo o registro atual do sistema que será instalado os pacotes
de instalação.
O texto do arquivo será mostrado em formato Tahoma, para editarmos usaremos o editor
de texto, bloco de notas do Windows, os comentários estarão em azul e negrito.

http://www.vbmania.com.br
Página 10 de 11
VBMania
Arquivo SETUP.LST
[Bootstrap]
SetupTitle=Install
SetupText=Copying Files, please stand by.
CabFile=SULDAO360.CAB
Spawn=Setup1.exe
Uninstal=st6unst.exe
TmpDir=msftqws.pdw
Cabs=1

[Bootstrap Files]
File1=@VB6STKIT.DLL,$(WinSysPathSysFile),,,3/26/99 12:00:00 AM,101888,6.0.84.50
File2=@COMCAT.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,5/31/98 12:00:00 AM,22288,4.71.1460.1
File3=@stdole2.tlb,$(WinSysPathSysFile),$(TLBRegister),,10/28/01 3:07:30 PM,17920,3.50.5014.0
File4=@asycfilt.dll,$(WinSysPathSysFile),,,8/4/04 12:45:22 AM,65024,5.1.2600.2180
File5=@olepro32.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/4/04 12:45:26 AM,83456,5.1.2600.2180
File6=@oleaut32.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/4/04 12:45:26 AM,553472,5.1.2600.2180
File7=@msvbvm60.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/4/04 12:45:26 AM,1392671,6.0.96.90

Iremos deletar a linha File6, deletando também o espaço e a linha File7 será renomeada para File6
[IconGroups]
Group0=WMSYS
PrivateGroup0=True
Parent0=$(Programs)

[WMSYS]
Icon1="SULDAO360.exe"
Title1=WMSYS
StartIn1=$(AppPath)

[Setup]
na linha Title o texto que segue será o texto apresentado ao usuário no momento da instalação
Title=WMSYS
DefaultDir=$(ProgramFiles)\WMSYS
AppExe=SULDAO360.exe
AppToUninstall=SULDAO360.exe
Abaixo são informados todos os arquivos que serão copiados para a maquina do cliente para o pleno
funcionamento, caso haja a necessidade de acrescentar lembre-se de utilizar o seqüência numérica dos File
[Setup1 Files]
File1=@MDAC_TYP.EXE,$(AppPath),,,6/26/98 12:00:00 AM,8124720,4.71.1015.0
File2=@MSMASK32.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/24/98 12:00:00 AM,166200,6.0.81.69
File3=@MSCOMCTL.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/6/02 11:13:00 AM,1077344,6.1.95.45
File4=@DBLIST32.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/24/98 12:00:00 AM,200496,6.0.81.69
File5=@DBGRID32.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/24/98 12:00:00 AM,525352,5.1.81.4
File6=@MSSTDFMT.DLL,$(WinSysPath),$(DLLSelfRegister),$(Shared),5/24/00 2:45:58 AM,118784,6.0.84.50
File7=@MSBIND.DLL,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/18/98 12:00:00 AM,77824,6.0.81.69
File8=@MSDBRPTR.DLL,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/18/98 12:00:00 AM,299008,6.0.81.69
File9=@msado20.tlb,$(WinSysPath),,$(Shared),8/3/04 10:21:44 PM,61440,2.81.1117.0
File10=@MSDERUN.DLL,$(CommonFiles)\designer,$(DLLSelfRegister),$(Shared),6/9/98 12:00:00 AM,137216,6.0.0.3005
File11=@dao360.dll,$(WinSysPath),$(DLLSelfRegister),$(Shared),8/4/04 12:45:22 AM,561179,3.60.8618.0
File12=@SULDAO360.exe,$(AppPath),,,5/1/05 9:21:09 PM,2048000,1.0.0.0

; The following lines may be deleted in order to obtain extra


; space for customizing this file on a full installation diskette.
;
; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Obs: Visual Basic 6.0, Access, WinXp, Win98, Windows, Office, Internet Explorer, são marcas ou
produtos registrados e pertencentes a Microsoft Corp.

http://www.vbmania.com.br
Página 11 de 11

Vous aimerez peut-être aussi