|
Os programas desenvolvidos para a plataforma .NET são
bem mais simples de instalar que os programas tradicionais para
Windows. Em muitos casos, podemos simplesmente copiar todos os
arquivos para um diretório do cliente, executar diretamente de um
servidor da rede ou mesmo fazer a distribuição através de HTTP.
No entanto, você pode desejar criar um
“instalador” para os programas .NET por uma série de razões:
§
O programa de instalação dá uma aparência mais
profissional;
§
Um programa de desinstalação é automaticamente criado;
§
O instalador pode instalar “assemblies” no GAC
automaticamente;
§
O instalador cria e configura aplicativos Web no
Internet Information Server;
§
O seu programa pode exigir a instalação em múltiplos
diretórios diferentes;
§
O instalador pode criar facilmente entradas em diversos
locais especiais do Windows, como atalhos no menu iniciar e no
desktop, entradas na pasta “Favoritos” do Internet Explorer, pasta
“StartUp” e pasta “Meus Documentos”;
§
O instalador pode reparar instalações defeituosas;
§
O instalador pode instalar e registrar componentes não
gerenciados (“não-.NET” que eventualmente o seu aplicativo necessite,
como componentes ActiveX ou DLLs diversas.
Diferentes Projetos
O Visual Studio .NETâ
oferece diferentes opções de “projetos de Setup”, disponíveis no menu
“File | New Project”:

Vejamos o que significa cada uma delas:
§
“Setup Wizard”: Permite criar qualquer um dos outros
quatro tipos de projeto através de um assistente;
§
“Cab Project”: Permite criar arquivos .CAB, úteis para
distribuir componentes ActiveX através da Internet; é essencialmente
uma opção obsoleta;
§
“Merge Module Project”: Permite criar um pacote que pode
fazer parte de outros projetos de seutp. Normalmente inclui um grupo
de componentes que serão usados por vários projetos. Este grupo de
componentes pode ser colocado em um “Merge Module” que será chamado
por ouros “Setup Project” ou “Web Setup Project”; esta opção destina-se
especialmente a produtos que serão usados por desenvolvedores;
§
“Setup Project”: Este é um dos projetos principais,
usado para aplicativos não-Web;
§
“Web Setup Project”: Semelhante ao “Setup Project”, mas
capaz de instalar projetos diretamente no IIS (Internet Information
Server).
Na maioria dos casos criaremos um “Setup Project”
ou, em casos de aplicativos Web (ASP.NET), um “Web Setup Project”.
Conteúdo de um “Setup project”
O projeto, quer seja um “Setup Project” ou um “Web
Setup Project” contém várias pastas, dentro das quais você pode
colocar arquivos. Um projeto do tipo “Setup Project” mostra
inicialmente três pastas:

“Application Folder” é a pasta principal a ser
criada sob “\Program Files\” (ou seu nome traduzido conforme a versão
do Windows) onde ficam os executáveis, DLLs e outros arquivos
principais do projeto. Você pode acrescentar arquivos clicando e
arrastando a partir do Windows Explorer ou clicando com o botão
direito sobre a pasta e pedindo “Add”.
Além das outras duas pastas presentes no projeto,
você pode clicar com o botão direito sobre “File System on Target
Machine”, pedir “Add Special Folder” e adicionar algum outro tipo de
pasta.
As pastas disponíveis são descritas a seguir.
|
Pasta |
Significado |
|
Application Folder |
Uma pasta sobre o diretório “Program Files” ou seu nome
correspondente em versões traduzidas. Tipicamente é “C:\Program
Files\Company Name\App Name”. |
|
Common Files Folder |
Pasta com
componentes comuns compartilhados por vários aplicativos,
tipicamente “C:\Program Files\Common”. |
|
Custom Folder |
Uma pasta qualquer
diferente de alguma das outras pastas pré-definidas. A princípio,
seu valor é o mesmo que “Application folder”. |
|
Fonts Folder |
Uma pasta virtual
contendo fontes, normalmente “C:\Winnt\Fonts”. |
|
Program Files Folder |
Raiz dos arquivos
de programa, tipicamente “C:\Program Files”. |
|
System Folder |
Diretório do
Windows para arquivos de sistema compartilhados, tipicamente C:\Winnt\System32. |
|
User's Application Data Folder |
Pasta que funciona
como repositório de dados específicos dos aplicativos, com uma
cópia para cada usuário. Tipicamente é
“C:\Documents and Settings\username\Application Data”. |
|
User's Desktop |
Pasta
correspondente a área de trabalho de cada um dos usuários.
Tipicamente é “C:\Documents and Settings\username\Desktop”. |
|
User's Favorites Folder |
Pasta “Favoritos”.
Tipicamente é “C:\Documents and Settings\username\Favorites”. |
|
User's Personal Data Folder |
Uma pasta que
funciona como repositório de dados de cada um dos usuários.
Tipicamente “C:\Documents and Settings\username\My
Documents”. |
|
User's Programs Menu |
Uma pasta que
contém os grupos de programa de cada usuário. Tipicamente é
“C:\Documents and Settings\username\Start Menu\Programs”. |
|
User's Send To Menu |
Pasta que indica os
itens “Enviar Para” de cada um dos usuários. Tipicamente é
“C:\Documents and Settings\username\SendTo”. |
|
User's Start Menu |
Pasta que contém os
itens “Iniciar” de cada usuário. Tipicamente é
“C:\Documents and Settings\username\Start Menu”. |
|
User’s Startup Folder. |
Pasta que contém os
itens “Startup” de cada usuário. Tipicamente é “C:\Documents and
Settings\username\Start Menu”. |
|
User's Template Folder |
Pasta que contém
“templates” de cada usuário. Tipicamente é
“C:\Documents and Settings\username\Templates”. |
|
Windows Folder |
Diretório do
Windows. Tipicamente é “C:\Winnt”. |
|
Global Assembly Cache Folder |
Arquivos que devem
ser instalados no GAC. |
Note que várias das pastas acima têm mais sentido
em aplicativos não-gerenciados, como por exemplo “System Folder” ou
“Windows Folder”. Dados os conhecidos problemas de distribuição de
software na plataforma Windows, você deve pensar bastante antes de
sair usando todas as pastas indiscriminadamente. Na dúvida, use o
mínimo de pastas possível.
Cada pasta tem algumas propriedades que podem ser
alteradas:
|
Propriedade |
Significado |
|
AlwaysCreate |
Indica se a pasta deve ser criada sempre,
mesmo que vazia. |
|
Condition |
Indica uma condição que deve ser satisfeita
para a pasta ser criada. Esta condição pode indicar coisas como
versões do Windows e Service Pack, Idioma do Windows, nome do
computador ou do usuário, se o instalador tem privilégios de
administração, tipo da CPU, nome e organização de quem está
fazendo a instalação. |
|
DefaultLocation |
Indica a localização da pasta. |
|
Description |
Descrição do conteúdo da pasta. |
|
DisplayName |
Nome da pasta usado na interface com o
usuário. |
|
Name |
Nome da pasta.
Não pode ser alterado na maioria dos casos. |
|
Property |
Indica opções adicionais da pasta,
especificadas como string. |
|
Transitive |
Indica se a propriedade Condition
será interpretada apenas na primeira instalação ou em todas as
instalações. |
Web Setup Project
Um projeto do tipo “Web Setup Project” contém
duas pastas adicionais:
|
Pasta |
Significado |
|
Web Application Folder |
Pasta principal do
aplicativo no servidor Web. Normalmente fica sob “c:\InetPub\wwwroot”,
mas quem indica a localização é o servidor Web. |
|
Web Custom Folder |
Pasta no servidor
Web, identificada por um prefixo “http”. |
A pasta principal do aplicativo tem várias
propriedades que controlam características específicas de um projeto
Web:

Estas opções são basicamente as mesmas que você tem
ao configurar uma pasta na ferramenta de gerenciamento do IIS. Por
exemplo, boa parte delas está nas opções de diretório:

Criando um “Setup Project”
A título de exemplo, criaremos um “Setup Project”
para instalar o exemplo GDIPlus mostrado em um artigo anterior . Em
primeiro lugar, é importante que você tenha compilado o projeto a ser
instalado para a versão de “Release” (selecione em “Build |
Configuration Manager”) antes de criar o projeto de Setup.
Peça depois a criação de um novo projeto do tipo
“Setup Project”:

O Visual Studio .NET cria o seguinte projeto vazio.
Acrescente os arquivos GDIPlus.exe e LogoNET.jpg na pasta “Application
Folder”:

O Visual Studio .NET automaticamente detecta o
uso de DLLs gerenciadas e automaticamente as adiciona ao projeto de
setup.
O nosso projeto é bem simples, mas em casos mais
complexos você acrescentaria outros arquivos não só nesta mas também
em outras pastas. Depois de acrescentar todos os arquivos necessários,
peça “Build | Build”:

Normalmente a construção reclama da falta do .NET
Framework no projeto de Setup. Isto não é um erro, apenas quer dizer
que os computadores nos quais o projeto será instalado deve ter o .NET
Framework já instalado para o projeto funcionar.
Você não pode incluir o .NET Framework
diretamente em seu projeto de Setup, mas pode distribuir o executável
“Dotnetfx.exe” junto com seu aplicativo, criar um outro aplicativo que
verifica a presença do .NET Framework e roda o instalador caso o .NET
Framework não esteja instalado. Ou então incluir o arquivo
“Dotnetfx.exe” e enviar instruções para que o usuário rode este
programa.
O “fruto” da criação do projeto de instalação está
na pasta “Debug” ou “Release” do seu projeto:

Caso o computador do usuário já tenha o “Windows
Installer”, basta distribuir o arquivo com extensão “msi”. O “Windows
Installer” pode não estar presente em versões antigas do Windows como
Windows 95, Windows 98 e Windows NT4. Caso você não tenha certeza que
o usuário possa o Windows Installer, copie o conteúdo todo do
diretório e oriente para o usuário rodar o programa Setup.exe
para instalar os aplicativos. Caso o Windows Installer não esteja
presente, o Setup.exe irá instalá-lo.
Conclusão
O Visual Studio .NET permite a criação de
projetos de instalação relativamente complexos que podem atender a
maioria dos desenvolvedores. Para os casos mais complexos, sempre é
possível usar um produto comercial como o Install Shield (http://www.installshield.com/)
ou Wise (http://www.wise.com/).
©
Copyright 2002 por Mauro Sant’Anna – Todos os direitos reservados
|