كيفية القيام بما يلي: تحديد ما إذا كان الملف هو تجميع (C# و Visual Basic)
الملف هو تجميع إذا و فقط إذا تمت إدارته و يحتوي على إدخال تجميع في بيانات التعريف الخاصة بها. للحصول على مزيد من المعلومات حول التجميعات وبيانات التعريف, راجع موضوع ملف بيان التجميع.
كيف يتم التحديد يدويًا إذا ما كان الملف تجميعًا
ابدء تشغيل Ildasm.exe (المفكك MSIL).
قم بتحميل الملف الذي ترغب باختباره.
في حالة إبلاغILDASM أن الملف ليس ملف تنفيذي محمول (PE) فلا تعتبر تجميعاً إذاً. لمزيد من المعلومات، راجع الموضوع التالي كيفية: عرض المحتويات التجميع.
كيف يتم التحديد برمجياً ما إذا كان الملف تجميعاً
استدعاء أسلوب GetAssemblyName بتمرير المسار الكامل واسم الملف الذي تختبره.
إذا كان تم طرح الاستثناء BadImageFormatException يكون الملف ليس تجميعاً.
مثال
هذا المثال يقوم باختبار DLL لمعرفة ما إذا كان تجميعاً.
Module Module1
Sub Main()
Try
Dim testAssembly As Reflection.AssemblyName =
Reflection.AssemblyName.GetAssemblyName("C:\Windows\Microsoft.NET\Framework\v3.5\System.Net.dll")
Console.WriteLine("Yes, the file is an Assembly.")
Catch ex As System.IO.FileNotFoundException
Console.WriteLine("The file cannot be found.")
Catch ex As System.BadImageFormatException
Console.WriteLine("The file is not an Assembly.")
Catch ex As System.IO.FileLoadException
Console.WriteLine("The Assembly has already been loaded.")
End Try
Console.ReadLine()
End Sub
End Module
' Output (with .NET Framework 3.5 installed):
' Yes, the file is an Assembly.
class TestAssembly
{
static void Main()
{
try
{
System.Reflection.AssemblyName testAssembly =
System.Reflection.AssemblyName.GetAssemblyName(@"C:\Windows\Microsoft.NET\Framework\v3.5\System.Net.dll");
System.Console.WriteLine("Yes, the file is an assembly.");
}
catch (System.IO.FileNotFoundException)
{
System.Console.WriteLine("The file cannot be found.");
}
catch (System.BadImageFormatException)
{
System.Console.WriteLine("The file is not an assembly.");
}
catch (System.IO.FileLoadException)
{
System.Console.WriteLine("The assembly has already been loaded.");
}
}
}
/* Output (with .NET Framework 3.5 installed):
Yes, the file is an assembly.
*/
أسلوبGetAssemblyName يقوم بتحميل ملف الاختبار ، و ثم تصدره بعد قراءة المعلومات.
راجع أيضًا:
المرجع
التجميعات ومخزن التجميع العمومي المؤقت (C# و Visual Basic)