No artigo - Gerando meu primeiro pacote de instalação no VB.NET - eu mostrei como criar um pacote de instalação para sua aplicação VB.NET.
Neste artigo eu vou abordar algumas questões que não foram mencionadas no artigo anterior , como a instalação do .NET Framework junto com sua aplicação e outros detalhes de personalização que veremos.
Para não perder tempo vou partir do ponto no qual já estamos com a aplicação VB.NET pronta esperando para gerar o pacote de distribuição.
Você pode
carregar qualquer projeto já pronto no VB.NET ; eu vou carregar um projeto
que mostra como usar o controle TreeView.
A aparência do projeto em execução é exibida ao lado. Não estou me preocupando com o projeto em si. Vamos focar nossa atenção na geração do pacote de instalação para este projeto. Obs: Em um outro artigo eu vou falar sobre o projeto Treeview em detalhes
|
|
Abaixo temos as opções de projetos de instação disponíveis no VB.NET. |
No Visual
Basic.NET não existe mais o Package & Deployment , não adianta
procurar .
O VB.NET inclui agora modelos de projetos que permitem criar um pacote de instalação Windows (Windows Installer) para distribuir sua aplicação. Um projeto Windows Installer é um tipo especial de projeto do Visual Studio.NET que não é específico da linguagem VB.NET. Nas versões anteriores do Visual Basic os pacotes eram baseados em arquivos de scripts , no VB.NET tudo mudou (para variar ) , e , agora você configura opções de inicialização através de designers especiais e janelas de diálogos de propriedades. Veja ao lado as opções de modelos de projetos para gerar pacotes de instalação no VB.NET
|
Então vamos ao trabalho...
Criando um projeto Windows Installer
1- Após
verificar que a aplicação esta rodando sem problemas vamos gerar o pacote de
instalação.
a- Abra o Solution Explorer e clique com o botão direito do mouse sobre o nome do projeto b- Selecione a opção Add do menu c- a seguir clicando na opção New Project... |
4- Na janela
Add New Project selecione o tipo de projeto -
Setup and Deployment Projects
a- a seguir clique em Setup Project b- Altere o nome do projeto para TreeView1 c- Altere também a localização(Location) para o local onde deseja salvar o pacote. d- Clique em OK e projeto Treeview1 será incluído ao seu projeto já existente. Dica- Se você alterar a localização para a mesma usada pelo projeto da aplicação principal todo o projeto e arquivos de Setup serão criados sob a pasta do projeto principal |
Vamos agora configura as opções de construção(build) da solução , senão toda vez que a sua aplicação for executada a partir do IDE , tanto o fonte como o projeto de setup serão construídos e isto pode consumir algum tempo extra indesejável. Para mudar este comportamento faça o seguinte:
- Pronto ! , agora o arquivo de setup não será criado automaticamente . Para construí-lo manualmente clique com o botão direito do mouse no projeto de setup e escolha build. |
Definindo os Designers para o seu projeto de Setup
Ao criar um projeto de Setup o VB.NET oferece várias opções de designers, cada um pode ser usado para configurar um aspecto do nosso programa de setup, Para ver todos os descritores (traduzi assim a palavra designers ) que você pode usar clique com o botão direito do mouse no item solution no Solution Explorer (do projeto de Setup) e selecione a opção View: (temos abaixo a figura da janela obtida)
|
Além disto você pode definir algumas opções básicas da janela Project|Properties (propriedades do projeto) como :
Incluindo arquivos e atalhos
Uma das etapas mais importantes na criação de um projeto de setup é definir quais arquivos você quer copiar para o computador de destino. Usando o descritor File System você pode definir quais arquivos serão incluídos para uma pasta reconhecida do sistema, uma pasta para fontes, a GAC ou mesmo a sua pasta Meus Documentos.
Pode também incluir arquivos em um caminho absoluto ou para um diretório que o usuário escolher para a aplicação. A lista de pastas suportadas é a seguinte :
A janela File System contém dois painéis; na esquerda a lista de pastas e na direita a lista de arquivos para a pasta selecionada.
Além disto , como você pode ver na figura da esquerda, temos a opção de incluir uma pasta especial. Basta clicar com o botão direito do mouse no painel da esquerda e escolher a opção. |
Arquivos de suporte
Você pode incluir manualmente arquivos que sua aplicação vai usar (bitmaps , arquivos de dados ,etc..). Basta clicar na lista de arquivos com o botão direito do mouse e escolher Add File.
Você pode incluir também projetos de saida como o .NET assembly na sua aplicação. Isto assegura que o arquivo será automaticamente regenerado a cada vez que você construir o setup. Para incluir um projeto de saida clique com o botão direito do mouse em Application Folder e escolha Project Output. |
-
Primary Output inclui o construtor assembly para o projeto
referenciado e qualquer assemblies dependente. - Esta é a opção mais comum , mas você pode também definir a opção Configuration para Release .NET para assegurar que o programa Setup sempre irá usar a versão release do assembly. - Localized Resources - utiliza o satelite assemblies para o projeto que contém recursos locais específicos - Source Files - inclui todos os arquivos de textos para o projeto. Qualquer outra assemblies dependente é referenciada de forma automática. Neste caso , a assembly dependente ( mscorlib,cfgmscorlig.dll) é incluida. Ao incluir um .NET Assembly , os arquivos da .NET framework será automaticamente incluída no setup, permitindo a você instalar sua aplicação em computadores que não possuem na plataforma o runtime do .NET. (Isto vai aumentar o tamanho do seu arquivo final entre 100 K a 15 Mb) Se o seu cliente já possui a plataforma .NET instalada exclua estes componentes para economizar espaço.(veja figura acima) |
Para incluir atalhos no seu projeto de Setup fazemos assim :
Para incluir um icone faça o seguinte:
|
A esta altura você já pode construir o seu projeto de Setup e gerar o arquivo .msi usando-o para instalar a aplicação Setup. Mas vamos continuar ...
Personalizando a interface com usuário
No descritor
- User Interface - podemos visualizar as
janelas que o usuário irá ver. As janelas estão exibidas na ordem na qual
serão apresentadas, e estão agrupadas por estágio de setup.
Você poderá ver duas versões listadas , uma para uma instalação de usuário padrão e outra para uma instalação administrativa. (conforme figura) Para acessar a instalação administrativa use o parâmetro /a. (geralmente esta opção e fornecida par uma instalação em rede). Para ver as propriedades de cada item clique sobre o item e veja a janela de propriedades.(conforme figura)
Não tem jeito de você visualizar os itens a não ser executando o setup. |
|
Você pode dar uma personalizada nesta interface...
A janela - Customer Information - tem uma propriedade interessante ; a propriedade SerialNumberTemplate pode ser customizada para não permitir que um usuário instala sua aplicação sem número serial válido. O modelo também determina como o número serial será formatado. Mas você não pode fazer a validação deste número diretamente, mas terá que usar as rotinas embutidas no produto Windows Installer que irá fazer a validação. Funciona assim : No modelo SerialNumberTemplate você pode usar os seguintes caracteres:
Qualquer outro caractere é tratado como um literal. O algorítmo de validação esta embutido no serviço do Windows Installer. Ele soma todos os dígitos e divide por 7. Se o resto for igual a zero a validação esta ok senão será inválida. Por exemplo : se usarmos o modelo <%%M-##-##> teremos três caixa de texto ; os quatro últimos caracteres devem ser dígitos ; o terceiro caractere deve ser a letra M e a soma dos primeiros dois dígitos deve ser divisível por 7. (um código válido seria : (77M-00-00) Nota: Lembre-se que somente os caracteres: % , ? requerem validação.
|
Para exibir a caixa de validação você deve definir a propriedade ShowSerialNumber igual True. Abaixo um exemplo para o caso estudado mostrando uma validação com sucesso e uma validação incorreta.
Para terminar vou falar do descritor Registry . Nele podemos incluir entradas no registro do sistema. Podemos localizar um nó no registro e incluir chaves e valores com um click de mouse.
Para o caso
estudado eu vou incluir no registro o nome da empresa e o nome do usuário
que instalou o sistema .
As variáveis usadas neste caso são identificadas por estarem envolvidas por colchetes. Em tempo de execução o Setup irá substituir as variáveis [Manufacturer] e [ProdutcName] e [CustomerName] e irá criar uma entrada no registro do Windows |
Como você notou o processo de geração de Setup ficou mais profissional permitindo uma personalização em muitas de suas etapas. O assunto não foi esgotado , pelo contrário , mostrei somente a ponta do iceberg. Com certeza voltarei a este assunto em futuros artigos...
Até lá...
José Carlos Macoratti