Cache global de assemblies
Cada computador onde o Common Language Runtime está instalado tem um cache de código da máquina chamado de Cache Global de Assemblies.O Cache Global de Assemblies armazena assemblies especificamente designados para serem compartilhados por vários aplicativos no computador.
Você deve compartilhar assemblies instalando-os no cache global de assemblies somente quando você precisa fazê-lo.Como diretriz geral, mantenha as dependências de um assembly privadas, e localize assemblies no diretório de aplicativo a não ser que o compartilhamento de um Assembly seja explicitamente necessário.Além disso, não é necessário instalar assemblies no cache global de assemblies para torná-los acessíveis para interoperabilidade COM ou código não gerenciado.
Observação: |
---|
Há situações em que você explicitamente não deseja instalar um Assembly no cache global de assemblies.Se você colocar um dos assemblies que compõem um aplicativo no cache global de assemblies, pode não mais duplicar ou instalar o aplicativo usando o xcopy comando para copiar o diretório do aplicativo.Você também deve mover o assembly no cache global de assemblies. |
Há várias maneiras para implantar um Assembly no cache global de assemblies:
Use um instalador desenvolvido para funcionar com o cache global de assemblies.Essa é a opção preferencial para instalar assemblies para o cache global de assemblies.
Use uma ferramenta de desenvolvimento chamada de ferramenta de Cache Global de Assembly (Gacutil.exe), fornecida pelo Windows Software Development Kit (SDK).
Use o Windows Explorer para arrastar módulos assemblies para o cache.
Observação: Nos cenários de implantação, use o Windows Installer 2.0 (site em inglês) para instalar assemblies para o cache global de assemblies.Use o Windows Explorer ou a ferramenta Global Assembly Cache apenas em cenários de desenvolvimento, porque eles não fornecem contagem de referência do assembly e outros recursos fornecidos ao usar o Windows Installer.
Os administradores geralmente protegem o diretório systemroot usando uma lista de controle de acesso (ACL) para controlar escrita e acesso de execução.Pelo fato de o cache global de assemblies estar instalado em um subdiretório do diretório systemroot, ele herda o ACL dessa pasta.É recomendável que apenas os usuários com privilégios de administrador tenham permissão para excluir arquivos do cache global de assemblies.
Assemblies implantados no cache global de assemblies devem ter um nome forte.Quando um Assembly é adicionado ao cache global de assemblies, são executadas verificações de integridade em todos os arquivos que compõem o Assembly.O cache executa essas verificações de integridade para garantir que um Assembly não foi violada, por exemplo, quando um arquivo foi alterado mas o manifesto não refletir a alteração.