Cómo: Determinar si un archivo es un ensamblado (Guía de programación de C#)

Actualización: noviembre 2007

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 Desensamblador de MSIL (Ildasm.exe).

  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.

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

Tareas

Solución de problemas de excepciones: System.BadImageFormatException

Conceptos

Guía de programación de C#

Referencia

Ensamblados y Caché de ensamblados global (Guía de programación de C#)

AssemblyName