Pregunta

¿Alguien conoce una herramienta que me permita generar un informe de los ensamblados instalados en .NET GAC en todos los servidores de mi granja web?(30-40 servidores)

O, alternativamente, ¿alguien tiene un indicador o un vínculo sobre alguna forma de acceder a la información mediante programación, a través de WMI, una consulta de registro remota o alguna otra tecnología?

¿Fue útil?

Solución

Gracias Kragen, por dando a entender que bajo el barniz de vista del GAC Explorer, hay archivos que pude consultar con el espacio de nombres System.IO existía. Por suerte tengo acceso a la red a cada servidor.

Sólo necesitaba, para un solo conjunto, para consultar las versiones que existían en el GAC en muchos servidores. Aunque lejos de ser una aplicación de informes completa, este fragmento se sirve mis propósitos muy bien:

private static void QueryServerGAC(string IP)
{
    string rootPath = String.Format(@"\\{0}\C$\WINDOWS\Assembly", IP);
    DirectoryInfo root = new DirectoryInfo(rootPath);

    foreach (DirectoryInfo gacDir in root.GetDirectories("GAC*")) // GAC, GAC_32, GAC_MSIL
    {
        foreach (DirectoryInfo assemDir in gacDir.GetDirectories("MyAssemblyName"))
        {
            foreach (DirectoryInfo versionDir in assemDir.GetDirectories())
            {
                string assemVersion = versionDir.Name.Substring(0, versionDir.Name.IndexOf('_'));
                foreach (FileInfo fi in versionDir.GetFiles("*.dll"))
                {
                    FileVersionInfo vi = FileVersionInfo.GetVersionInfo(fi.FullName);
                    Console.WriteLine("{0}\t{1}\t{2}\t{3}", IP, fi.Name, assemVersion, vi.FileVersion);
                }
            }
        }
    }
}

Esto puede ser llamado una vez por cada IP del servidor de interés, e imprime el IP, nombre de DLL, Version Asamblea, y FileVersion a la consola.

No dude en tomar el código y modificar para sus propios fines.

Otros consejos

Puede deshabilitar la vista GAC ​​predeterminada para convertirla en una vista de explorador normal en el registro, simplemente establezca el siguiente valor en 1:

HKEY_LOCAL_MACHINE\Software\Microsoft\Fusion\

(Fuente http://sqlmusings.wordpress.com/2007/11/17/how-to-disable-gac-view/)

Luego puede usar alguna herramienta de comparación de carpetas o simplemente averiguar qué ensamblajes están presentes a partir de los nombres de las carpetas.

Para su información, esto simplemente desactiva la vista del explorador, sin embargo, otros puntos de interacción con el sistema de archivos (p. ej.el objeto Archivo en C# o el símbolo del sistema) ya ven esta vista, por lo que probablemente no sea necesario configurar esta clave de registro en todos sus servidores.

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