Trabalhando com assemblies e o cache de assemblies globalWorking with Assemblies and the Global Assembly Cache

Se você pretender compartilhar um assembly com vários aplicativos, será necessário instalá-lo no cache de assembly global.If you intend to share an assembly among several applications, you can install it into the global assembly cache. Cada computador em que o Common Language Runtime está instalado tem um cache de código em todo o computador.Each computer where the common language runtime is installed has this machine-wide code cache. O cache de assembly global armazena assemblies projetados especificamente para serem compartilhados por vários aplicativos no computador.The global assembly cache stores assemblies specifically designated to be shared by several applications on the computer. Um assembly deve ter um nome forte para ser instalado no cache de assembly global.An assembly must have a strong name to be installed in the global assembly cache.

Observação

Assemblies colocados no cache de assembly global devem ter o mesmo nome de assembly e de arquivo (não incluindo a extensão de nome de arquivo).Assemblies placed in the global assembly cache must have the same assembly name and file name (not including the file name extension). Por exemplo, um assembly com o nome de myAssembly deve ter um nome de arquivo de myAssembly.exe ou myAssembly.dll.For example, an assembly with the assembly name of myAssembly must have a file name of either myAssembly.exe or myAssembly.dll.

Você deve compartilhar assemblies instalando-os no cache de assembly global somente quando necessário.You should share assemblies by installing them into the global assembly cache only when necessary. Como diretriz geral, mantenha as dependências de um assembly particulares e localize os assemblies no diretório de aplicativo, a menos que o compartilhamento de um assembly seja explicitamente obrigatório.As a general guideline, keep assembly dependencies private and locate assemblies in the application directory unless sharing an assembly is explicitly required. Além disso, você não precisa instalar assemblies no cache de assembly global a fim de torná-los acessíveis para interoperabilidade COM ou código não gerenciado.In addition, you do not have to install assemblies into the global assembly cache to make them accessible to COM interop or unmanaged code.

Há diversas razões para instalar um assembly no cache de assembly global:There are several reasons why you might want to install an assembly into the global assembly cache:

  • Local compartilhado.Shared location.

    Assemblies que devem ser usados por aplicativos podem ser colocados no cache de assembly global.Assemblies that should be used by applications can be put in the global assembly cache. Por exemplo, se todos os aplicativos devem usar um assembly localizado no cache de assembly global, uma declaração de política de versão pode adicionada ao arquivo Machine.config que redireciona referências para o assembly.For example, if all applications should use an assembly located in the global assembly cache, a version policy statement can be added to the Machine.config file that redirects references to the assembly.

  • Segurança do arquivo.File security.

    Os administradores geralmente protegem o diretório systemroot usando uma ACL (Lista de Controle de Acesso) para controlar os acesso de gravação e de execução.Administrators often protect the systemroot directory using an Access Control List (ACL) to control write and execute access. Como o cache de assembly global é instalado em um diretório do systemroot, ele herda a ACL desse diretório.Because the global assembly cache is installed in the systemroot directory, it inherits that directory's ACL. É recomendável que apenas usuários com privilégios Administrador tenham permissão para excluir arquivos do cache de assembly global.It is recommended that only users with Administrator privileges be allowed to delete files from the global assembly cache.

  • Controle de versão lado a lado.Side-by-side versioning.

    Várias cópias de assemblies com o mesmo nome, mas com informações diferentes de versão, podem ser mantidas no cache de assembly global.Multiple copies of assemblies with the same name but different version information can be maintained in the global assembly cache.

  • Local adicional de pesquisa.Additional search location.

    O Common Language Runtime verifica o cache de assembly global para um assembly que corresponde à solicitação de assembly antes de investigar ou usar as informações da base de código em um arquivo de configuração.The common language runtime checks the global assembly cache for an assembly that matches the assembly request before probing or using the codebase information in a configuration file.

Observe que há situações em que explicitamente não é recomendado instalar um assembly no cache de assembly global.Note that there are scenarios where you explicitly do not want to install an assembly into the global assembly cache. Se colocar um dos assemblies que compõem um aplicativo no cache de assembly global, você não poderá mais replicar nem instalar o aplicativo usando XCOPY para copiar o diretório do aplicativo.If you place one of the assemblies that make up an application into the global assembly cache, you can no longer replicate or install the application by using XCOPY to copy the application directory. Nesse caso, você também deve mover o assembly para o cache de assembly global.In this case, you must also move the assembly into the global assembly cache.

Nesta seçãoIn This Section

Como: Instalar um assembly no cache de assembly globalHow to: Install an Assembly into the Global Assembly Cache
Descreve as maneiras de instalar um assembly no cache de assembly global.Describes the ways to install an assembly into the global assembly cache.

Como: Exibir o conteúdo do cache de assembly globalHow to: View the Contents of the Global Assembly Cache
Explica como usar a Gacutil.exe (Ferramenta de Cache de Assembly Global) para exibir o conteúdo do cache de assembly global.Explains how to use the Gacutil.exe (Global Assembly Cache Tool) to view the contents of the global assembly cache.

Como: Remover um assembly do cache de assembly globalHow to: Remove an Assembly from the Global Assembly Cache
Explica como usar a Gacutil.exe (Ferramenta de Cache de Assembly Global) para remover um assembly do cache de assembly global.Explains how to use the Gacutil.exe (Global Assembly Cache Tool) to remove an assembly from the global assembly cache.

Uso de componentes atendidos com o cache de assembly globalUsing Serviced Components with the Global Assembly Cache
Explica por que componentes de atendidos (componentes COM+ gerenciados) devem ser colocados no cache de assembly global.Explains why serviced components (managed COM+ components) should be placed in the global assembly cache.

Criação de assembliesCreating Assemblies
Apresenta uma visão geral da criação de assemblies.Provides an overview of creating assemblies.

Cache de assembly globalGlobal Assembly Cache
Descreve o cache de assembly global.Describes the global assembly cache.

Como: Exibir o conteúdo do assemblyHow to: View Assembly Contents
Explica como usar o Ildasm.exe (IL Disassembler) para exibir informações MSIL (Microsoft Intermediate Language) em um assembly.Explains how to use the Ildasm.exe (IL Disassembler) to view Microsoft intermediate language (MSIL) information in an assembly.

Como o tempo de execução localiza assembliesHow the Runtime Locates Assemblies
Descreve como o Common Language Runtime localiza e carrega os assemblies que compõem seu aplicativo.Describes how the common language runtime locates and loads the assemblies that make up your application.

Programação com assembliesProgramming with Assemblies
Descreve assemblies, os blocos de construção de aplicativos gerenciados.Describes assemblies, the building blocks of managed applications.