2009-05-02 28 views

Respuesta

10

De hecho, encontré este post, después de escribir mi pregunta. Es muy bueno explicó:

podrás verlos si navega a

c:\windows\assembly

con el Explorador, donde puedes encontrar una lista con un formato agradable de las asambleas.
La extensión de shell responsable de esta vista muestra no solo los ensamblados en el GAC, sino también las versiones nativas de ensamblados precompilados con ngen.exe.
Pero los archivos no se almacenan aquí: la extensión del shell simplemente enmascara su ubicación real. Puede ver dónde están realmente almacenados los archivos navegando al mismo directorio mediante un símbolo del sistema.
En esta ubicación hay varios subdirectorios, incluido uno llamado GAC. Enterrado aquí bajo varias capas de códigos hash y nombres de ensamblado reside los ensamblajes físicos, junto con un archivo .INI pasado de moda que contiene el nombre fuerte entre otras cosas. Vale la pena explorar en este territorio inexplorado solo para entender lo que sucede bajo las sábanas, aunque tenga cuidado de hacer cambios ya que el GAC está destinado a ser opaco.

2

La ubicación física del GAC es el directorio de ensamblaje en% WINDIR%, f.e.

c:\windows\assembly 

Puede copiar ensamblajes al gac con Explorer, o el programa gacutil.

3

Se almacenan en% SystemRoot% en una carpeta denominada montaje

La variable% SystemRoot% es una variable de entorno de todo el sistema especial que se encuentra en Microsoft Windows NT y sus derivados. Su valor es la ubicación de la carpeta del sistema, incluida la unidad y la ruta.

El disco es igual que% SystemDrive% y la ruta predeterminada en una instalación limpia depende de la versión del sistema operativo. Por defecto, en una instalación limpia:

* Windows NT 5.1 (Windows XP) and newer versions use \WINDOWS 
* Windows NT 5.0 (Windows 2000), Windows NT 4.0 and Windows NT 3.1 use \WINNT 
* Windows NT 3.5x uses \WINNT35 

(de Wikipedia)

1

no, físicamente los conjuntos no se almacenan en "C: \ Windows \ assembly". solo se almacenan allí las referencias a los ensamblajes. por ejemplo, ensamblado "System.Windows.Forms.dll" (así como la mayoría de los ensamblados de .NET Framework) se almacena físicamente en "C: \ Windows \ winsxs" en muchas ediciones, optimizado para muchas plataformas (solo vaya a "C: \ Windows \ winsxs" en el Explorador y escriba "System.Windows.Forms.dll" en el cuadro de búsqueda). por ejemplo, puede crear un ensamblaje con un nombre fuerte, registrarlo en el GAC, pero su ubicación física es donde coloca el archivo de ensamblaje. (por ejemplo, "C: \ Users \% username% \ Documents \ Visual Studio 2008 \ Projects \ YourAssemblyProjectName \ YourAssemblyProjectName \ bin \ Debug" - directorio predeterminado de los proyectos VS). y más, en GAC solo se guardan las referencias a ensamblajes, por lo que si reconstruye su ensamblado que está registrado en GAC, los ensamblajes que utilizan su ensamblaje, al hacer referencia a él desde GAC, también usarán una versión reconstruida de su ensamblaje.

Cuestiones relacionadas