Apenas procurando uma breve visão geral do GAC para um leigo, não um link, por favor.
187
Certo, basicamente é uma maneira de manter as DLLs acessíveis globalmente sem se preocupar com conflitos. Não há mais DLL Hell. Cada arquitetura e versão tem seu próprio lugar para morar.
Ele também possui uma maneira própria de navegar no Explorer, portanto, se você for para
C: \ Windows \ assembly
No Windows Explorer, lista todas as DLLs.
Mas se você iniciar cmd
, poderá ver como é realmente estruturado:
C: \ Usuários \ tritter> CD C: \ Windows \ assembly C: \ Windows \ assembly> dir Diretório de C: \ Windows \ assembly 20/07/2009 02:18 <DIR> GAC 17/06/2009 04:22 <DIR> GAC_32 17/06/2009 04:22 <DIR> GAC_64 17/06/2009 04:22 <DIR> GAC_MSIL ...recorte... 0 Arquivo (s) 0 bytes 9 diretório (s) 90.538.311.680 bytes grátis C: \ Windows \ assembly> CD GAC_64 C: \ Windows \ assembly \ GAC_64> dir Diretório de C: \ Windows \ assembly \ GAC_64 17/06/2009 16:22 <DIR>. 17/06/2009 04:22 <DIR> .. 19/01/2008 09:54 <DIR> blbproxy ...recorte... 19/01/2008 09:54 <DIR> srmlib 19/01/2008 06:11 <DIR> System.Data 19/01/2008 06:11 <DIR> System.Data.OracleClient ...recorte... 0 Arquivo (s) 0 bytes 34 Dir (s) 90.538.311.680 bytes grátis C: \ Windows \ assembly \ GAC_64> cd System.Data C: \ Windows \ assembly \ GAC_64 \ System.Data> dir Diretório de C: \ Windows \ assembly \ GAC_64 \ System.Data 19/01/2008 06:11 <DIR>. 19/01/2008 06:11 <DIR> .. 11/04/2009 12:20 <DIR> 2.0.0.0__b77a5c561934e089 0 Arquivo (s) 0 bytes 3 diretório (s) 90.538.311.680 bytes grátis C: \ Windows \ assembly \ GAC_64 \ System.Data> cd 2.0.0.0__b77a5c561934e089 C: \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089> dir Diretório de C: \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089 11/04/2009 12:20 <DIR>. 11/04/2009 12:20 <DIR> .. 11/04/2009 12:12 3,008,512 System.Data.dll 1 arquivo (s) 3.008.512 bytes 2 diretório (s) 90.538.311.680 bytes grátis C: \ Windows \ assembly \ GAC_64 \ System.Data \ 2.0.0.0__b77a5c561934e089>
Aqui você pode ver a versão 2.0.0.0__b77a5c561934e089 do System.Data.
Uma DLL é identificada por 5 partes:
Embora os três primeiros sejam geralmente os grandes.
GAC = cache global de assemblies
Vamos dividir:
Portanto, o GAC deve ser um local para armazenar bibliotecas de códigos, para que sejam acessíveis a todos os aplicativos em execução na máquina.
fonte
Cache de montagem global
As coisas que o MSDN contém podem surpreendê-lo ... geralmente você pode lê-lo como um artigo. Os bits diretos e mais importantes no topo, os detalhes intrincados mais profundamente. Certamente explica melhor do que eu poderia.
Observe que o Visual Studio exibe todas as DLLs no GAC na guia .NET da janela References . (Clique com o botão direito do mouse em um projeto no Solution Explorer e selecione Add Reference.) Isso deve fornecer uma idéia mais tangível.
fonte
Biblioteca DLL centralizada.
fonte
O Global Assembly Cache (GAC) é uma pasta no diretório do Windows para armazenar os assemblies .NET especificamente designados para serem compartilhados por todos os aplicativos executados em um sistema. Os assemblies podem ser compartilhados entre vários aplicativos na máquina registrando-os no cache global de Assembly (GAC). O GAC é um cache local de assemblies em toda a máquina, mantido pelo .NET Framework.
fonte
Exe Application, em primeiro lugar, referências de um diretório atual para um subdiretório. E então, diretório do sistema. O diretório do sistema VS6.0 era ..windows / system32. O diretório do sistema .NET é como o caminho abaixo do GAC.
Caminho do GAC
1) C: \ Windows \ Assembly (para .NET 2.0 ~ 3.5)
2) C: \ Windows \ Microsoft.NET \ assembly (para .NET 4.0)
Como instalar um assembly no GAC (como administrador)
1) Arrastar e soltar
2) Use GacUtil.exe com o prompt de comando do Visual Studio
Como desinstalar um assembly do GAC (como administrador)
fonte
É como o registro COM feito corretamente, com relação aos arquivos físicos, bem como às informações de interface e localização. No COM, os arquivos estavam por toda parte, com metadados centralizados. O GAC centraliza a filmagem.
fonte
O GAC (Global Assembly Cache) é o local onde residem todos os assemblies .NET compartilhados.
fonte