Compartir a través de


Cómo: Determinar si un archivo es un ensamblado (C# y Visual Basic)

Un archivo es un ensamblado si, y sólo si, se administra y contiene una entrada de ensamblado en sus metadatos. Para obtener más información sobre ensamblados y metadatos, vea el tema Manifiesto del ensamblado.

Cómo determinar manualmente si un archivo es un ensamblado

  1. Inicie Ildasm.exe (Desensamblador de IL).

  2. Cargue el archivo que desea probar.

  3. Si ILDASM informa de que el archivo no es un archivo ejecutable portable (PE), entonces no es un ensamblado. Para obtener más información, vea el tema Cómo: Ver el contenido de un ensamblado.

Cómo determinar mediante programación si un archivo es un ensamblado

  1. Llame al método GetAssemblyName y pase la ruta de acceso completa y el nombre del archivo que está probando.

  2. Si se produce una excepción BadImageFormatException, el archivo no es un ensamblado.

Ejemplo

Este ejemplo prueba un archivo DLL para ver si es un ensamblado.

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.
*/

El método GetAssemblyName carga el archivo de prueba y, a continuación, lo libera una vez que se lee la información.

Vea también

Referencia

AssemblyName

Conceptos

Guía de programación de C#

Ensamblados y caché global de ensamblados (C# y Visual Basic)

Otros recursos

Guía de programación en Visual Basic