Udostępnij za pośrednictwem


Porady: określanie, czy plik jest zestawem (C# i Visual Basic)

Plik jest zgromadzenie tylko wtedy, gdy jest zarządzana i wpis zgromadzenia w jego metadanych.Aby uzyskać więcej informacji dotyczących zespołów i metadane, zobacz temat Manifest zestawu.

Jak ręcznie określić, czy plik jest zgromadzenie

  1. Uruchom Ildasm.exe (Dezasembler IL).

  2. Załaduj plik, który chcesz przetestować.

  3. Jeśli Narzędzia ILDASM raporty, że plik nie jest plikiem wykonywalnym przenośne (PE), a następnie nie jest zestawem.Aby uzyskać więcej informacji, zobacz temat Porady: wyświetlanie zawartości zestawu.

Jak programowo określić, czy plik jest zgromadzenie

  1. Wywołanie GetAssemblyName metody, przekazując pełną ścieżkę i nazwę pliku, są badania.

  2. Jeśli BadImageFormatException jest wyjątek, plik nie jest zestawem.

Przykład

W tym przykładzie badania DLL, aby zobaczyć, jeśli jest to zespół.

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 Metoda ładuje plik testowy i zwalnia je po informacji jest odczytywany.

Zobacz też

Informacje

AssemblyName

Koncepcje

Przewodnik programowania w języku C#

Zestawy i globalna pamięć podręczna zestawów (C# and Visual Basic)

Inne zasoby

Przewodnik programowania w Visual Basic