Inicialização
No momento, cada instalação que tenta usar o Windows Installer começa verificando se o instalador está presente no computador do usuário e, caso não esteja presente, se o usuário e o computador estão prontos para instalar o Windows Installer. Um aplicativo de instalação Instmsi.exe está disponível com o SDK do Windows Installer que contém toda a lógica e funcionalidade para instalar o Windows Installer. No entanto, um aplicativo de inicialização deve gerenciar essa instalação.
O aplicativo de inicialização deve primeiro verificar se o Windows Installer está instalado no momento. Os aplicativos podem obter a versão do Windows Installer instalada no momento usando DllGetVersion. Se o Windows Installer não estiver instalado no momento, o aplicativo de inicialização deve consultar o sistema operacional para determinar qual versão do Instmsi.exe é necessária. Depois que a instalação do Windows Installer for iniciada, o aplicativo de inicialização deve manipular os códigos de retorno do aplicativo Instmsi.exe e qualquer reinicialização incorrida durante a instalação do Windows Installer. Para obter mais informações, confira Como determinar a versão do Windows Installer
O exemplo a seguir demonstra como o aplicativo de instalação do Microsoft Office 2000 verifica o sistema do usuário e configura a instalação do Windows Installer. Este exemplo foi elaborado especificamente para instalar o Office 2000 e deve ser usado apenas como referência geral.
Quando um usuário insere um CD-ROM do Office 2000 no computador, o Setup.exe tenta iniciar o modo de manutenção, o aplicativo de instalação ou não faz nada, de acordo com as necessidades do usuário. A seção a seguir descreve como o aplicativo de instalação do Office 2000, chamado Setup.exe, qualifica o usuário e o computador, constrói uma linha de comando e instala o Windows Installer usando o aplicativo Msiexec.exe.
O usuário insere um CD-ROM do Office 2000 no computador. O sistema operacional Windows inicia o Setup.exe usando a opção /autorun e o arquivo Autorun.inf. O arquivo Autorun.inf é encontrado na raiz do CD-ROM do Office 2000 e contém as seguintes seções:
[Autorun]
[Office Features]
[Product Information]
[ServicePack].
A seção [Autorun] contém uma linha de comando que executa o aplicativo Setup.exe, executa o ícone usado para exibir o disco e contém informações para adicionar a opção "Instalar" e a opção "Configurar" ao menu de contexto do CD-ROM.
A seção [Office Features] contém uma lista de recursos e pares de nomes de recursos.
A seção [Product Information] especifica o nome e a versão do aplicativo.
A seção [ServicePack] permite que um administrador de rede defina o nível mínimo de service pack necessário. O administrador de rede pode usar esta seção para criar o texto de uma mensagem de alerta exibida, se o sistema operacional local não tiver o service pack necessário.
Veja a seguir um exemplo de Autorun.inf.
[autorun] OPEN=setup.EXE /AUTORUN /KEY:Software\Microsoft\Office\9.0\Common\General\InstallProductID ICON=setup.EXE,1 shell\configure=&Configure shell\configure\command=setup.EXE shell\install=&Install shell\install\command=setup.EXE [OfficeFeatures] Feature1=ACCESSFiles Feature2=OfficeFiles Feature3=WORDFiles Feature4=EXCELFiles Feature5=PPTFiles [ProductInformation] DisplayName=Microsoft Office 9 Version=9.0 ProductCode={product guid} [ServicePack] MessageText="The operating system does not have a required service pack. Please download and install this from www.microsoft.com." SPLevel=3
O aplicativo Setup.exe verifica o mutex _MsiPromptForCD. O Windows Installer cria esse mutex quando solicita que o usuário insira o CD-ROM. A presença do mutex indica que o Windows Installer está executando uma instalação que solicitou o CD-ROM do Office 2000. Nesse caso, o aplicativo Setup.exe é encerrado imediatamente e permite que a instalação do Office 2000 continue. Se o mutex estiver ausente, o aplicativo Setup.exe continuará na etapa 3 em que uma chave do registro é avaliada para determinar se o Office 2000 está instalado.
O aplicativo Setup.exe verifica a presença da chave do registro do Office9:
HKCU/Software/Microsoft/Office/9.0/Common/General/InstallProductID
Se essa chave do registro não existir, o aplicativo Setup.exe continuará na etapa 6 em que o sistema operacional é verificado para determinar se está qualificado para a instalação do Office 2000.
Se a chave do registro do Office 2000 existir, o aplicativo Setup.exe verificará o estado de instalação atual chamando MsiQueryProductState. Um estado de retorno de InstallState_Default indica que o Office 2000 já está instalado e o aplicativo Setup.exe continua na etapa 5, em que o Office 2000 é verificado para ser executado na origem.
Se o Office 2000 não estiver instalado, o aplicativo Setup.exe continuará na etapa 2000 em que o sistema operacional é verificado para determinar se está qualificado para a instalação do Office 6.
O aplicativo Setup.exe chama MsiQueryFeatureState para cada um dos recursos na seção [OfficeFeatures] do arquivo Autorun.inf. Se qualquer um desses recursos retornar INSTALLSTATE_SOURCE, isso indicará que o recurso está sendo executado na origem e o aplicativo Setup.exe será encerrado imediatamente.
Se nenhum dos recursos retornar INSTALLSTATE_SOURCE, o aplicativo Setup.exe iniciará o aplicativo instalador, Msiexec.exe, e apresentará o modo de manutenção do Windows Installer, antes de sair.
O aplicativo Setup.exe determina se o sistema operacional está qualificado para uma instalação do Office 2000. O Windows XP é necessário para instalar o Office 2000. Se o sistema operacional exigir uma atualização de service pack para se qualificar para o Office 2000, o aplicativo Setup.exe exibirá o texto especificado no arquivo Autorun.inf. Se o sistema operacional não se qualificar para o Office 2000 ou uma atualização do Office 2000, o aplicativo Setup.exe exibirá uma mensagem que impedirá que o usuário continue.
Se o sistema operacional se qualificar para o Office 2000, o aplicativo Setup.exe continuará na etapa 7, que determina se o Windows Installer está instalado no computador do usuário.
Se o Windows Installer existir no computador do usuário, o aplicativo Setup.exe iniciará o aplicativo Msiexec.exe e passará o arquivo .msi do Office 2000 para ele.
Se o Windows Installer não estiver instalado no computador local, o aplicativo Setup.exe continuará na etapa 8, que determina se o sistema operacional está qualificado para instalar o Windows Installer.
Se o computador local estiver qualificado para instalar o Windows Installer, o aplicativo Setup.exe executará a versão correta do aplicativo instalador do Instmsi.exe na plataforma. O Setup.exe pode passar a opção de linha de comando "/q" para suprimir a interface do usuário e impedir que o usuário altere as opções de configuração de instalação.
O aplicativo Setup.exe carregará o arquivo de Msi.dll recém-instalado e executará uma chamada para a função MsiInstallProduct para instalar o aplicativo do usuário.
O aplicativo Setup.exe permite que administradores e usuários passem as opções de linha de comando para o aplicativo Msiexec.exe. Para obter mais informações, confira Opções de linha de comando. A tabela a seguir lista as opções de comando que podem ser usadas com o Setup.exe.
Opção | Uso | Significado |
---|---|---|
/autorun | setup.exe /autorun | Executa o Autorun.inf descrito acima. |
/a | setup.exe /a | Inicia uma instalação administrativa. |
/j | [u|m]Packageor [u|m]Package /t Transform List ou [u|m]Package /g LanguageID |
Anuncia um produto. Essa opção ignora todos os valores de propriedade inseridos na linha de comando. u Anuncia para o usuário atual. m Anuncia a todos os usuários do computador. g Identificador de idioma t Aplica transformação ao pacote anunciado. |
/I | setup.exe /I Office9.msi /t ProgramMgmt.mst | Especifica o arquivo .msi que o Setup.exe deve instalar. Se a opção /I não estiver incluída, o Setup.exe usará o arquivo Office9.msi. |
/o<property=value> | setup.exe /o CDKEY=111111-1111 | Define as propriedades no arquivo .msi. O Setup.exe passa essas propriedades para msiexec, conforme gravado. |
/q | setup.exe /q | Define o nível da interface do usuário da instalação. /q no UI (/qn for msiexec.) /qb basic UI /qr reduced UI. |
/m# | setup.exe /m4 | Dá suporte a várias licenças de acordo com os contratos do Select. Essa propriedade é usada na ação personalizada Verificação de Licença para gravar o certificado LV. A opção /m deve ser seguida pelo número de desbloqueios permitidos. O valor especificado pela opção /m deve ser definido como a propriedade "M" no arquivo Office9.msi. Se nenhum valor for especificado, mas a opção /m for usada com a instalação, o valor de 0 deverá ser definido. A opção /m é necessária para dar suporte aos clientes do Select usando um CD ou uma rede. |
/settings | setup.exe /settings mysettings.ini | Permite que os administradores especifiquem um arquivo .ini que contém todas as configurações personalizadas a serem passadas durante a instalação do Office 2000. Confira a descrição do arquivo .ini abaixo. |
Criar um arquivo de inicialização pode ser mais fácil do que criar uma linha de comando longa. Usando a opção /settings, o aplicativo Setup.exe lê o arquivo .ini especificado e constrói uma linha de comando para passar para o aplicativo Msiexec.exe. Há suporte apenas para propriedades compatíveis com a linha de comando no arquivo .ini. Se uma propriedade ou um valor for encontrado no arquivo .ini e na linha de comando, as configurações de linha de comando substituirão as configurações do arquivo .ini.
O formato do arquivo .ini é:
[msi]
[mst]
[options]
[Display]
A seção [msi] do arquivo .ini especifica o caminho para o pacote de instalação. Isso corresponde à opção /I na linha de comando.
A seção [mst] do arquivo .ini especifica o caminho para as transformações usadas com essa instalação. Isso corresponde à opção /j na linha de comando. Várias transformações são indicadas em uma linha diferente, usando MST1 MST(N). Quando analisada na linha de comando, a lista no arquivo .ini é transformada da esquerda para a direita. Observe que o número associado ao título MST(N) está presente apenas para manter os identificadores exclusivos e não tem significado programático.
A seção [options] permite que os administradores de rede definam e substituam propriedades nos arquivos .msi ou .mst. As opções definidas no arquivo .ini são adicionadas à linha de comando usando a opção /o. Cada opção na seção de opções deve ter um nome de propriedade e um valor.
A seção [Display] é usada para definir o nível de interface do usuário aplicado durante a instalação. Isso corresponde à opção /q na linha de comando. Os valores válidos são nenhum, básico, reduzido e completo.
Arquivo de .ini de exemplo
[MSI]
MSI=\\sourceshare\Office2000\Office2000.msi
[MST]
MST1=\\sourceshare\Office2000\trns1.mst
MST2=\\sourceshare\Office2000\trns2.mst
[Options]
PUBLICPROPERTY=your value
[Display]
Display=None