Académique Documents
Professionnel Documents
Culture Documents
Visual basic 6
Gerando pacotes de instalação.
Escrito por:
Daniel Weber
wweber@brturbo.com.br
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:
http://www.vbmania.com.br
Página 2 de 11
VBMania
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.
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.
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”.
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 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
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