Redirecionamento de DLL/COM no Windows
O redirecionamento de DLL/COM é uma estratégia de isolamento de aplicativo empregada por administradores corporativos no Windows XP.
**Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP com SP2: ** O uso de estratégias de redirecionamento DLL/COM não é recomendado porque aplicativos isolados que usam manifestos e assemblies lado a lado podem ser mais fáceis de atualizar e atender. A presença de um arquivo .local será ignorada se um manifesto estiver presente. A estratégia de redirecionamento de DLL/COM usando arquivos .local funcionará se o aplicativo não tiver um manifesto.
O redirecionamento de DLL/COM associa um aplicativo a uma versão local de um componente. Os arquivos do componente local podem ser mantidos separados da versão do componente do sistema em um local privado para o aplicativo. A versão do componente do sistema é registrada globalmente e está disponível para qualquer outro aplicativo que se associe a ele. A versão local do componente é reservada para o uso exclusivo do aplicativo. Se necessário, os arquivos de componente usados pelo aplicativo podem ser carregados na memória ao mesmo tempo que os arquivos de componente do sistema.
O redirecionamento de DLL/COM é ativado instalando um arquivo especial junto com uma cópia do arquivo de componente local no mesmo diretório que o arquivo executável do aplicativo. O arquivo especial é um arquivo vazio com o nome do arquivo do executável do aplicativo e acrescentado com .local. Por exemplo, para ativar o redirecionamento de DLL/COM para um aplicativo chamado Myapp, a versão local do componente e um arquivo vazio chamado Myapp.exe.local devem ser copiados para a pasta que contém Myapp.exe. Isso associa o aplicativo à versão local do componente em vez da versão globalmente compartilhada do componente.
Quando um aplicativo carrega um arquivo de componente, como um arquivo DLL ou .ocx, o Windows primeiro o pesquisa na pasta em que o arquivo .local e executável do aplicativo está instalado. Se encontrado, o aplicativo usa esse arquivo de componente, independentemente de qualquer caminho de pesquisa de diretório definido no aplicativo ou no Registro. Se não for encontrado, o arquivo de componente no caminho de pesquisa definido será usado.
O utilitário de instalação deve fazer o seguinte para instalar o aplicativo com redirecionamento de DLL/COM:
- Um arquivo .local vazio deve ser copiado para a mesma pasta que o arquivo executável do aplicativo.
- Todos os componentes, DLL e arquivos .ocx usados pelo aplicativo devem ser copiados para a mesma pasta que o arquivo executável do aplicativo.
- Componentes COM isolados devem ser registrados com o Windows para que versões diferentes do assembly não entrem em conflito entre si quando carregadas na memória ao mesmo tempo. O processo de registro requer que, embora a implementação do componente possa ser alterada entre versões, determinados metadados COM, como CLSID, ProgID, Biblioteca de Tipos e Modelo de Threading, não podem.
- Se o aplicativo estiver instalado usando o Windows Installer, o diretório do aplicativo poderá ser protegido usando a tabela LockPermissions. Normalmente, o sistema recebe acesso de leitura, gravação e execução; todos os outros processos recebem apenas acesso de execução e leitura.