O que é o GAC in.NET?
8 answers
Ele também consegue a sua própria maneira de navegar no Explorer, por isso se você for para
No windows explorer lista todos os DLLs.C:\Windows\assembly
Mas se você ligar cmd
, você pode ver como é realmente estruturado:
C:\Users\tritter>cd C:\Windows\assembly C:\Windows\assembly>dir Directory of C:\Windows\assembly 07/20/2009 02:18 PM <DIR> GAC 06/17/2009 04:22 PM <DIR> GAC_32 06/17/2009 04:22 PM <DIR> GAC_64 06/17/2009 04:22 PM <DIR> GAC_MSIL ...snip... 0 File(s) 0 bytes 9 Dir(s) 90,538,311,680 bytes free C:\Windows\assembly>cd GAC_64 C:\Windows\assembly\GAC_64>dir Directory of C:\Windows\assembly\GAC_64 06/17/2009 04:22 PM <DIR> . 06/17/2009 04:22 PM <DIR> .. 01/19/2008 09:54 AM <DIR> blbproxy ...snip... 01/19/2008 09:54 AM <DIR> srmlib 01/19/2008 06:11 AM <DIR> System.Data 01/19/2008 06:11 AM <DIR> System.Data.OracleClient ...snip... 0 File(s) 0 bytes 34 Dir(s) 90,538,311,680 bytes free C:\Windows\assembly\GAC_64>cd System.Data C:\Windows\assembly\GAC_64\System.Data>dir Directory of C:\Windows\assembly\GAC_64\System.Data 01/19/2008 06:11 AM <DIR> . 01/19/2008 06:11 AM <DIR> .. 04/11/2009 12:20 PM <DIR> 2.0.0.0__b77a5c561934e089 0 File(s) 0 bytes 3 Dir(s) 90,538,311,680 bytes free 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 Directory of C:\Windows\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089 04/11/2009 12:20 PM <DIR> . 04/11/2009 12:20 PM <DIR> .. 04/11/2009 12:12 PM 3,008,512 System.Data.dll 1 File(s) 3,008,512 bytes 2 Dir(s) 90,538,311,680 bytes free C:\Windows\assembly\GAC_64\System.Data\2.0.0.0__b77a5c561934e089>Aqui você pode ver a versão 2.0.0.0.0_ _ b77a5c561934e089 of System.Dado.
A DLL é identificada por 5 partes:
- nome
- Versão
- Arquitectura
- Cultura
- Chave Pública
Embora os primeiros 3 sejam geralmente os grandes.
GAC = Global Assembly Cache
Vamos acabar com isto.- global-aplica-se a toda a máquina
- assembly-what. net chama as suas bibliotecas de código (DLLs)
- cache-um lugar para armazenar coisas para um acesso mais rápido/comum
'Cache' Global Assembly
As coisas que a MSDN contém podem surpreender-te... normalmente lê-se como um artigo. Os bits simples e mais importantes no topo, os detalhes intrincados mais abaixo. Certamente explica é melhor do que eu poderia.Cada computador onde o comum o tempo de execução da linguagem está instalado tem um a 'cache' de código em toda a máquina chamada cache global assembly. Global armazenamento de cache de montagem dos conjuntos especificamente designado para ser partilhado por várias aplicações computador.
Você deve compartilhar assembleias por instalá-los no global cache de montagem apenas quando você precisa. Como orientação geral, manter a montagem dependências privadas e localizar conjuntos na aplicação pasta, a menos que partilha um conjunto é explicitamente exigido. Alem, não é necessário instalar assembleias na Assembleia global cache para torná-los acessíveis a COM código interop ou não gerido.
Note que o Visual Studio mostra todos os DLLs do GAC na página.NET da janela de referências . (Clique com o botão direito sobre um projeto no Solution Explorer e selecione Adicionar Referência. Isto deve dar-lhe uma ideia mais tangível.
Aplicação Exe, em primeiro lugar, referências de uma pasta actual para uma sub-pasta. E depois, o directório do sistema. Era o directório do sistema VS6.0 ..windows / system32. O directório do sistema do. NET é como a localização do GAC abaixo.
-
Localização do GAC
1) C:\Windows\Assembly (para. NET 2, 0 ~ 3, 5)
2) C:\WINDOWS\Micorosoft.NET\assembly (para. NET 4.0)
-
Como instalar um conjunto no GAC (como administrador)
1) arrastar e largar
2) utilizar GacUtil.exe com comando Visual Studio Prompt
gacutil -i [Path][Assembly Name].dll
- Nota: para instalar um conjunto no GAC, o conjunto deve ser fortemente nomeado. Caso contrário, obterá um erro como este: Falha ao adicionar a montagem à 'cache': Tente instalar um conjunto sem um nome forte.
-
Como desinstalar uma montagem do GAC (como administrador)
gacutil -u [Assembly Name], Version=1.0.0.0, PublickeyToken=7896a3567gh
- Nota: não tem extensão .dll. Versão e Publickeyoken pode ser omitida e verificada na montagem GAC.
A 'Cache' Global Assembly (GAC) é uma pasta no directório do Windows para armazenar os conjuntos.NET que são especificamente designados para serem partilhados por todas as aplicações executadas num sistema. Conjuntos podem ser compartilhados entre várias aplicações na máquina, registrando-os no cache Global Assembly(GAC). GAC é uma máquina de largura um cache local de conjuntos mantidos pelo Framework.net.
O GAC (Global Assembly Cache) é onde reside todo o conjunto partilhado.net.