Esto da vueltas y vueltas, lo sé, pero parece que no puedo encontrar una respuesta satisfactoria.Revisando instalaciones GAC
¿Los ensambles deben ir en el GAC? Estas preguntas: when-and-when-not-to-install-into-the-gac y What are the advantages and disadvantages of using the GAC, abordan exactamente eso, pero las respuestas son en gran medida "se recomienda que ..." o "solo debería ...". ¿¿¿Por qué???
Muchos de los blogs de Naysay del GAC parecen fechar desde hace 5/6 años cuando la estrella de .Net comenzaba su ascenso. ¿Todavía estamos allí ahora? Sin duda, DLL-Hell es una cosa del pasado, ya que el GAC apoya la instalación lado a lado de las diferentes versiones del "mismo" ensamblaje.
Déjame aclarar mis preocupaciones. Tenemos un conjunto creciente de aplicaciones web (5 hasta ahora). Estas son, en esencia, extensiones de una aplicación de terceros a través de llamadas API y extensiones de bases de datos. Obviamente, por lo tanto, todas estas aplicaciones comparten una gran cantidad de código en común y estamos desarrollando un nuevo conjunto de bibliotecas compartidas para mejorar nuestra calidad, mantenibilidad, etc.
Seguramente quiero que esta funcionalidad compartida se instale una vez y se comparta. Todos los argumentos sobre la apertura de una pesadilla de mantenimiento parecen basarse en un mundo de poca disciplina. Si rompe el ABI, entonces golpear el AssemblyVersion es suficiente para mantener sus aplicaciones existentes funcionando.
¿Es el GAC realmente una trampa de miel para los desprevenidos? ¿Estoy siendo ingenuo? ¿Estoy siendo innecesariamente duro cuando rechazo argumentos que citan la pérdida de la instalación de 'XCopy' como silbidos perezosos? ¿O se está poniendo un poco "religioso" y debería ir con lo que parece correcto?
Gracias por ayudarme a ver la luz.
Dan
Siguiendo con la respuesta de David, he llegado a la conclusión de que el GAC es un lugar fino y respetable para almacenar nuestros conjuntos siempre que tengamos cuidado con los cambios que hacemos. Creo que una única entidad instalable en un único lugar identificable hará que nuestra estrategia general de desarrollo e implementación sea más fácil de administrar y mantener. Así que, gracias de nuevo a David por su respuesta. Lo he marcado como una respuesta, aunque este es claramente un área de cierta subjetividad. Dan –