Como usar o Windows Installer e a Proteção de Recursos do Windows
O Windows Installer segue a WRP (Proteção de Recursos do Windows) ao instalar arquivos essenciais do sistema, pastas e informações do Registro no Windows Server 2008 e versões posteriores e no Windows Vista e versões posteriores.
A WRP no Windows Server 2008 e no Windows Vista substitui a WFP (Proteção de Arquivo do Windows) no Windows Server 2003, no Windows XP e no Windows 2000. Os desenvolvedores do Windows Installer devem observar as seguintes alterações em como o instalador lida com recursos protegidos no Windows Server 2008 e versões posteriores e no Windows Vista e versões posteriores:
- Durante a execução no Windows Server 2008 e versões posteriores ou no Windows Vista e versões posteriores, o Windows Installer ignora a instalação de qualquer arquivo protegido pela WRP, o instalador insere um aviso no arquivo de log e continua com o restante da instalação sem nenhum erro. No Windows Server 2003, no Windows XP e no Windows 2000, quando o Windows Installer encontrava um arquivo protegido pela WFP, o instalador solicitava que a WFP instalasse o arquivo.
- A WRP no Windows Server 2008 e versões posteriores ou no Windows Vista e versões posteriores pode proteger chaves do Registro além de arquivos. Caso o Windows Installer encontre uma chave do Registro protegida pela WRP, o instalador ignora a instalação dessa chave do Registro, o instalador insere um aviso no arquivo de log e continua com o restante da instalação sem nenhum erro.
- Observe que, se um componente do Windows Installer contiver uma chave do Registro ou um arquivo protegido pela WRP, esse recurso precisará ser usado como o KeyPath para o componente. Nesse caso, o Windows Installer não instala, atualiza nem remove o componente. Você não deve incluir nenhum recurso protegido em um pacote de instalação. Em vez disso, você deve usar os mecanismos de substituição de recursos com suporte para a Proteção de Recursos do Windows.
Para obter mais informações sobre a WRP, confira Proteção de Recursos do Windows e as informações fornecidas no Microsoft Technet.
WFP para Windows Server 2003 e Windows XP/2000
O Windows Installer segue a WFP (Proteção de Arquivo do Windows) ao instalar arquivos essenciais do sistema no Windows Server 2003, no Windows XP e no Windows 2000. Se um arquivo do sistema protegido é modificado por uma instalação autônoma de um aplicativo, a WFP restaura o arquivo para a versão do arquivo verificada.
O Windows Installer nunca tenta instalar nem substituir um arquivo protegido. Quando a ação InstallFiles ou qualquer outra ação agendada antes de InstallFiles tentar instalar um arquivo protegido no Windows Server 2003, no Windows XP ou no Windows 2000, o instalador chama a WFP com uma solicitação para instalar ou substituir o arquivo protegido. O instalador solicita a instalação do arquivo à WFP imediatamente após a execução da ação InstallFiles. A WFP instala ou substitui o arquivo no sistema do usuário por uma versão armazenada em cache do arquivo protegido. Observe que isso não garante que a versão do arquivo instalada por meio do cache seja a versão necessária para o aplicativo. Depois que a WFP instalar o arquivo, o instalador determinará se essa versão corresponde à versão no pacote. Se a versão do arquivo no pacote for maior que a versão instalada, o instalador informará ao usuário que ele não pode atualizar o sistema e que uma atualização do sistema operacional pode ser necessária para o aplicativo.
Se qualquer ação sequenciada após InstallFiles tentar instalar ou substituir um arquivo protegido ainda não instalado no sistema, o instalador não poderá chamar a WFP para instalar o arquivo. Nesse caso, o instalador informa ao usuário que ele não pode atualizar o sistema e que uma atualização do sistema operacional pode ser necessária para o aplicativo.
O instalador também faz uma verificação com a WFP ao remover arquivos e nunca tenta remover arquivos protegidos do sistema.
Arquivos de chave de componente protegidos pela WFP
Observe que, se um componente do Windows Installer contiver um arquivo da WFP, esse arquivo precisará ser especificado como o caminho da chave para o componente.
Quando o instalador tenta instalar o arquivo de chave de um componente no Windows Server 2003, no Windows XP ou no Windows 2000, ele primeiro chama a WFP para determinar se o arquivo de chave é protegido. Quando o arquivo de chave de um componente é protegido pela WFP e esse arquivo de chave já está instalado, o instalador atualiza o componente somente se a versão do arquivo da chave no pacote é maior que a versão instalada. Se o pacote de instalação especificar que um componente deve ser instalado e o arquivo de chave do componente não estiver instalado no momento, independentemente de o arquivo de chave ser protegido, o instalador instalará o componente. Depois que qualquer componente com um arquivo de chave protegido pela WFP é instalado, ele é instalado permanentemente e o instalador nunca remove nem substitui o componente.
Instalação de assemblies pela WFP
A WFP para assemblies é diferente da WFP para arquivos do sistema.
A WFP protege os arquivos do sistema do Windows Server 2003, do Windows XP e do Windows 2000 detectando tentativas de substituir arquivos protegidos do sistema. Essa proteção é disparada depois que a WFP recebe uma notificação de alteração de diretório para um arquivo em um diretório protegido. Quando a WFP recebe essa notificação, ela determina qual arquivo foi alterado. Se o arquivo é protegido, a WFP procura a assinatura do arquivo em um arquivo de catálogo estático para determinar se o novo arquivo é a versão correta. Se a versão do arquivo não estiver correta, o sistema substituirá o arquivo pela versão correta do cache ou da mídia de distribuição.
Por outro lado, a WFP de assemblies é dinâmica. A WFP é estendida para os arquivos conforme eles são adicionados ao cache de assembly lado a lado compartilhado. Se um assembly ficar corrompido, a WFP solicitará que o instalador substitua o arquivo. O Windows Installer pode ou não conseguir substituir o arquivo, dependendo se o pacote de origem está acessível. Se o pacote de origem estiver inacessível, a WFP apresentará uma caixa de diálogo informando que não é possível restaurar o arquivo.
Observe que os assemblies compartilhados não gerenciados lado a lado, instalados em %windir%\winsxs, são protegidos pela WFP. Os assemblies particulares não gerenciados, instalados no diretório do aplicativo, não são protegidos pela WFP. Os assemblies globais gerenciados instalados no diretório do aplicativo ou em %windir%\assembly\gac não são protegidos pela WFP.
Tópicos relacionados