Pergunta

Alguém sabe de uma ferramenta que permita-me para gerar um relatório das assembleias instalados para o .NET GAC em todos os servidores em minha fazenda web? (30-40 servidores)

Ou, em alternativa, alguém tem um ponteiro ou um link em alguma forma de acessar as informações por meio de programação, via WMI, ou consulta de registro remoto, ou alguma outra tecnologia?

Foi útil?

Solução

Graças Kragen, por insinuando que sob o verniz de vista GAC ??do Explorer, existia arquivos eu poderia consultar com o namespace System.IO. Felizmente eu tenho acesso à rede para cada servidor.

Eu só precisava, para uma única montagem, para consultar as versões que existiam no GAC em muitos servidores. Embora longe de um aplicativo de relatório completa, este trecho servido meus propósitos bem:

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);
                }
            }
        }
    }
}

Isto pode ser chamado uma vez para cada IP do servidor de interesse, e imprime o IP, nome DLL, Assembly Version, e FileVersion para o console.

Sinta-se livre para tomar este código e modificar para seus próprios fins.

Outras dicas

Você pode desativar a exibição GAC padrão para transformá-lo em uma exibição normal explorer no registro, basta definir o seguinte valor para 1:

HKEY_LOCAL_MACHINE\Software\Microsoft\Fusion\

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

Você pode, então, basta usar alguma ferramenta de comparação de pasta, ou apenas trabalhar para fora o que os conjuntos estão presentes desde os nomes de pasta.

FYI - este apenas desliga a exibição do Explorer, no entanto outros pontos de interação com o sistema de arquivos (por exemplo, o objeto de arquivo em C #, ou o comando prompt) já vemos este ponto de vista, então não há provavelmente não é qualquer necessidade de definir esta chave de registo em todos os seus servidores.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top