Sdílet prostřednictvím


Postupy: Určení, zda je soubor sestavení (C# and Visual Basic)

Pokud je spravován a obsahuje položku sestavení v jeho metadata, je soubor sestavení.Další informace o sestavení a metadat naleznete v tématu Manifest sestavení.

Jak ručně určit, zda soubor sestavení

  1. Start Ildasm.exe (IL Disassembler).

  2. Načtěte soubor, který chcete testovat.

  3. Pokud ILDASM zprávy, že soubor není soubor přenosné spustitelný soubor (PE) a pak se nejedná o sestavení.Další informace získáte v tématu Postupy: Zobrazení obsahu sestavení.

Jak programově zjistit, zda soubor sestavení

  1. Volání GetAssemblyName metoda úplnou cestu a název souboru, který testujete.

  2. Pokud BadImageFormatException je výjimka, soubor není sestavení.

Příklad

V tomto příkladu testy DLL, pokud je sestavení.

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 načte soubor test a poté uvolní po přečtení informací.

Viz také

Referenční dokumentace

AssemblyName

Koncepty

Průvodce programováním v C#

Sestavení a globální mezipaměť sestavení GAC (C# and Visual Basic)

Další zdroje

Příručka k programování v jazyce Visual Basic