سؤال

هل يعرف أي شخص بأداة تسمح لي بإنشاء تقرير عن التجميعات المثبتة على .NET GAC على جميع الخوادم في مزرتي الويب؟ (30-40 خوادم)

أو بدلا من ذلك، هل لدى أي شخص مؤشر أو رابط في طريقة الوصول إلى المعلومات برمجيا، عبر WMI، أو استعلام التسجيل البعيد، أو بعض التكنولوجيا الأخرى؟

هل كانت مفيدة؟

المحلول

بفضل Kragen، للتأكد من أنه أسفل قشرة عرض GAC للمستكشف، هناك ملفات موجودة يمكنني الاستعلام عن مساحة الاسم SYSTEM.IO. لحسن الحظ لدي الوصول إلى الشبكة إلى كل خادم.

لقد احتجت فقط، للحصول على مجموعة واحدة، للاستعلام عن الإصدارات الموجودة في GAC على العديد من الخوادم. بينما بعيدا عن تطبيق الإبلاغ الكامل، خدم هذا المقتطف أغراضي بشكل جيد:

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

يمكن استدعاء ذلك مرة واحدة لكل خادم IP من الفائدة، وطباعة عنوان IP، اسم DLL، إصدار التجميع، و FixVersion إلى وحدة التحكم.

لا تتردد في اتخاذ هذا الرمز وتعديل لأغراضك الخاصة.

نصائح أخرى

يمكنك تعطيل طريقة العرض GAC الافتراضية لتحويلها إلى عرض مستكشف عادي في السجل، فقط قم بتعيين القيمة التالية إلى 1:

HKEY_LOCAL_MACHINE\Software\Microsoft\Fusion\

(مصدر http://sqlmusings.wordpress.com/2007/11/17/how-to-disable-gac-view/)

يمكنك بعد ذلك استخدام بعض أداة مقارنة المجلدات، أو فقط قم بتشغيل التجميعات الموجودة من أسماء المجلدات.

FYI - هذا مجرد إيقاف عرض Explorer، مهما كانت هناك نقاط تفاعل أخرى مع نظام الملفات (مثل كائن الملف في C #، أو موجه الأوامر) قد ترى بالفعل هذا الرأي، لذلك لا توجد حاجة إلى تعيين مفتاح التسجيل هذا على كل ذلك الخوادم الخاصة بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top