Pregunta

Quiero exportar los ensamblados integrados en mi proyecto. Pero, ¿dónde están almacenados físicamente?

¿Fue útil?

Solución

Realmente encontré esta publicación, después de que escribí mi pregunta. Está muy bien explicado:

Podrás verlos si navegas a

c: \ windows \ assembly

con Explorer, donde verás una lista de ensamblajes bien formateada.
La extensión de shell responsable de esta vista muestra no solo los ensamblados en el GAC, sino también las versiones nativas de los ensamblados precompilados con ngen.exe.
Pero los archivos no están realmente almacenados aquí, la extensión del shell simplemente enmascara su verdadera ubicación. Puede ver dónde se almacenan realmente los archivos al navegar por el mismo directorio a través de 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 conjuntos, se encuentran los conjuntos físicos, junto con un archivo .INI antiguo que contiene el nombre fuerte entre otras cosas. Vale la pena explorar en este territorio inexplorado solo para comprender lo que ocurre debajo de las coberturas, aunque tenga cuidado de hacer cambios, ya que el GAC pretende ser opaco.

Otros consejos

Se almacenan en% systemroot% en una carpeta llamada assembly

La variable% SystemRoot% es una variable de entorno especial para todo el sistema 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.

La unidad es igual a% 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)

La ubicación física de la GAC ??es el directorio de ensamblajes en% WINDIR%, es decir,

c:\windows\assembly

Puedes copiar los ensamblados al gac con Explorer o el programa gacutil.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top