Trabalhando com Assemblies e o Cache Global de Assemblies
Se você pretende compartilhar um conjunto de módulos (assembly) entre vários aplicativos, você pode instalá-lo no cache global de assemblies.Cada computador onde o Common Language Runtime está instalado possui essa cache de código relativo a máquina.O Cache Global de Assemblies armazena assemblies especificamente designados para serem compartilhados por vários aplicativos no computador.Um conjunto de módulos (assembly) deve ter um nome forte a ser instalado na cache global de assemblies.
Observação: |
---|
Conjuntos de Módulos (Assemblies) colocados no cache global de assemblies deve ter o mesmo nome do assembly e nome de arquivo (não incluindo a extensão de nome de arquivo).Por exemplo, um conjunto de módulos (assembly) com nome de myAssembly deve ter um nome de arquivo de myAssembly.exe ou myAssembly.dll. |
Você deve compartilhar assemblies instalando-os na cache global de assemblies somente quando necessário.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, você não tem que instalar assemblies na cache global de assemblies para torná-los acessíveis para interoperabilidade COM ou código não gerenciado.
Há várias razões por que você desejaria instalar um conjunto de módulos (assembly) na cache global de assemblies:
Local Compartilhado.
Conjuntos de módulos (assemblies) que devem ser usados por aplicativos podes ser colocados na cache global de assemblies.Por exemplo, se todos os aplicativos devem usar um conjunto de módulos (assembly) localizado na cache global de assemblies, uma instrução diretiva de versão pode ser adicionada para o arquivo Machine.config que redireciona referências para o assembly.
Segurança de Arquivo.
Os administradores geralmente protegem o diretório raiz do sistema 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 raiz do sistema, 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.
Versão lado-a-lado
Várias cópias de conjuntos de módulos (assemblies) com o mesmo nome mas informações de versões diferentes podem ser mantidas na cache global de assemblies.
Local de pesquisa adicional.
O Common Language Runtime verifica um conjunto de módulos (assembly) para um assembly que coincide com a solicitação antes de procurar ou usar as informações da base de código em um arquivo de configuração.
Há situações em que você explicitamente não deseja instalar um assembly na cache global de assemblies.Se você colocar um dos assemblies que compõem um aplicativo na cache global de assemblies, você não pode mais duplicar ou instalar o aplicativo usando o comando xcopy para copiar o diretório do aplicativo.Nesse caso, você também deverá mover o assembly para a cache global de assemblies.
Nesta seção
Como: Instalar um assembly para o cache de assembly global
Descreve quatro maneiras para instalar um conjunto de módulos (assembly) para a cache global de assemblies.Como: Exibir o Sumário da cache global de assemblies
Explica como usar o Global ferramenta cache assembly (Gacutil.exe) para exibir o conteúdo da cache global de assemblies.Como: Remover um assembly do cache de assembly global
Explica como usar o Global ferramenta cache assembly (Gacutil.exe) para remover um conjunto de módulos (assembly) da cache global de assemblies.Usando Componentes de Serviço com a Cache Global de Assemblies
Explica por que componentes atendidos (componentes gerenciados COM+) devem ser colocados na cache global de assemblies.
Seções relacionadas
Criando assemblies
Fornece uma visão geral da criação de assemblies.Cache global de assemblies
Descreve a cache global de assemblies.Como: Exibir Sumário do assembly
Explica como usar o Desassemblador do MSIL (ILDASM.exe) para exibir informações do Microsoft Intermediate Language (MSIL) em um conjunto de módulos (assembly).Como o Runtime Localiza Assemblies
Descreve como o Common Language Runtime localiza e carrega os conjuntos de módulos (assemblies) que constituem seu aplicativo.Programação com assemblies
Descreve conjuntos de módulos (assemblies), os blocos de construção dos aplicativos gerenciados.