Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

BadImageFormatException (Clase)

Excepción que se inicia cuando la imagen de archivo de una biblioteca de vínculos dinámicos (DLL) o de un programa ejecutable no es válida.

System.Object
  System.Exception
    System.SystemException
      System.BadImageFormatException

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(true)]
public class BadImageFormatException : SystemException

El tipo BadImageFormatException expone los siguientes miembros.

  Nombre Descripción
Método público Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif BadImageFormatException() Inicializa una nueva instancia de la clase BadImageFormatException.
Método público Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif BadImageFormatException(String) Inicializa una nueva instancia de la clase BadImageFormatException con un mensaje de error especificado.
Método protegido BadImageFormatException(SerializationInfo, StreamingContext) Inicializa una nueva instancia de la clase BadImageFormatException con datos serializados.
Método público Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif BadImageFormatException(String, Exception) Inicializa una nueva instancia de la clase BadImageFormatException con un mensaje de error especificado y una referencia a la excepción interna que representa la causa de esta excepción.
Método público BadImageFormatException(String, String) Inicializa una nueva instancia de la clase BadImageFormatException con el mensaje de error y el nombre de archivo especificados.
Método público BadImageFormatException(String, String, Exception) Inicializa una nueva instancia de la clase BadImageFormatException con un mensaje de error especificado y una referencia a la excepción interna que representa la causa de esta excepción.
Arriba
  Nombre Descripción
Propiedad pública Data Obtiene una colección de pares de clave y valor que proporcionan información adicional definida por el usuario acerca de la excepción. (Se hereda de Exception).
Propiedad pública FileName Obtiene el nombre del archivo que causa esta excepción.
Propiedad pública FusionLog Obtiene el archivo de registro que describe el motivo por el que no se ha podido cargar un ensamblado.
Propiedad pública HelpLink Obtiene o establece un vínculo al archivo de ayuda asociado a esta excepción. (Se hereda de Exception).
Propiedad protegida Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif HResult Obtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica. (Se hereda de Exception).
Propiedad pública Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif InnerException Obtiene la instancia Exception que produjo la excepción actual. (Se hereda de Exception).
Propiedad pública Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif Message Obtiene el mensaje de error y el nombre del archivo que ha causado esta excepción. (Invalida a Exception.Message).

En XNA Framework 3.0, este miembro se hereda de Exception.Message.


En  , este miembro se hereda de Exception.Message.
Propiedad pública Source Devuelve o establece el nombre de la aplicación o del objeto que generó el error. (Se hereda de Exception).
Propiedad pública Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif StackTrace Obtiene una representación de cadena de los marcos inmediatos en la pila de llamadas. (Se hereda de Exception).
Propiedad pública TargetSite Obtiene el método que produjo la excepción actual. (Se hereda de Exception).
Arriba
  Nombre Descripción
Método público Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif Equals(Object) Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif GetBaseException Cuando se reemplaza en una clase derivada, devuelve la clase Exception que representa la causa principal de una o más excepciones posteriores. (Se hereda de Exception).
Método público Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetObjectData Establece el objeto SerializationInfo con el nombre del archivo, el registro de la caché de ensamblados y la información adicional de la excepción. (Invalida a Exception.GetObjectData(SerializationInfo, StreamingContext)).
Método público Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif GetType Obtiene el tipo en tiempo de ejecución de la instancia actual. (Se hereda de Exception).

En XNA Framework 3.0, este miembro se hereda de Object.GetType().


En  , este miembro se hereda de Object.GetType().
Método protegido Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público Compatible con XNA Framework 92hkyaf2.PortableClassLibrary(es-es,VS.100).gif ToString Devuelve el nombre completo de esta excepción y, posiblemente, el mensaje de error, el nombre de la excepción interna y el seguimiento de la pila. (Invalida a Exception.ToString()).

En XNA Framework, este miembro está invalidado por ToString().


En , este miembro está invalidado por ToString().
Arriba
  Nombre Descripción
Evento protegido SerializeObjectState Se produce cuando se serializa una excepción para crear un objeto de estados de excepción que contiene datos serializados sobre la excepción. (Se hereda de Exception).
Arriba

Se produce esta excepción cuando el formato de archivo de una biblioteca de vínculos dinámicos(archivo .dll) o una aplicación ejecutable (archivo .exe) no cumple con el formato que espera Common Language Runtime. En concreto, se produce una excepción en las condiciones siguientes:

  • Una versión anterior de una utilidad .NET Framework, como ILDasm.exe o installutil.exe, se utiliza con un ensamblado que se desarrolló con una versión posterior de .NET Framework.

    Para resolver esta excepción, utilice la versión de la herramienta que corresponde a la versión de .NET Framework utilizada para desarrollar el ensamblado. Esto puede requerir modificar la variable de entorno Path o proporcionar una ruta de acceso completa a la aplicación ejecutable correcta.

  • Un intento se realiza para cargar una biblioteca de vínculos dinámicos no administrada o aplicación ejecutable (como una DLL de sistema de Windows) como si fuera un ensamblado de .NET Framework. En el ejemplo siguiente se muestra esto utilizando el método Assembly.LoadFilepara cargar Kernel32.dll.

    
    // Windows DLL (non-.NET assembly)
    string filePath = Environment.ExpandEnvironmentVariables("%windir%");
    if (! filePath.Trim().EndsWith(@"\"))
       filePath += @"\";
    filePath += @"System32\Kernel32.dll";
    
    try {
       Assembly assem = Assembly.LoadFile(filePath);
    }
    catch (BadImageFormatException e) {
       Console.WriteLine("Unable to load {0}.", filePath);
       Console.WriteLine(e.Message.Substring(0, 
                         e.Message.IndexOf(".") + 1));   
    }
    // The example displays an error message like the following:
    //       Unable to load C:\WINDOWS\System32\Kernel32.dll.
    //       The module was expected to contain an assembly manifest.
    
    
    

    Para resolver esta excepción, tenga acceso a los métodos definidos en la DLL utilizando las características proporcionadas por el lenguaje de desarrollo que está usando, como la instrucción Declare en Visual Basic o el atributo DllImportAttribute con la palabra clave extern en C#.

  • Una DLL o aplicación ejecutable se carga como un ensamblado de 64 bits, pero contiene características o recursos de 32 bits. Por ejemplo, usa la interoperabilidad COM o llama a métodos en una biblioteca de vínculos dinámicos de 32 bits.

    Para resolver esta excepción, establezca la propiedad de Destino de la plataforma del proyecto en x86 (en lugar de x64 o AnyCPU) y vuelva a compilar.

  • Los componentes se han creado utilizando versiones diferentes de .NET Framework. Normalmente, esta excepción se produce cuando una aplicación o componente que se desarrolló utilizando .NET Framework 1.0 o .NET Framework 1.1 intenta cargar un ensamblado que se desarrolló mediante .NET Framework 2.0 SP1 o posterior, o cuando una aplicación que se desarrolló utilizando .NET Framework 2.0 SP1 o .NET Framework 3.5 intenta cargar un ensamblado que se desarrolló mediante .NET Framework 4. BadImageFormatException se puede notificar como un error en tiempo de compilación o se puede producir la excepción en tiempo de ejecución. En el ejemplo siguiente se muestra este escenario. Define una clase StringLib que tiene un miembro único, ToProperCase, y que reside en un ensamblado denominado StringLib.dll.

    
    using System;
    
    public class StringLib
    {
       private string[] exceptionList = { "a", "an", "the", "in", "on", "of" };
       private char[] separators = { ' ' };
    
       public string ToProperCase(string title)
       {
          bool isException = false;	
    
          string[] words = title.Split( separators, StringSplitOptions.RemoveEmptyEntries);
          string[] newWords = new string[words.Length];
    		
          for (int ctr = 0; ctr <= words.Length - 1; ctr++)
          {
             isException = false;
    
             foreach (string exception in exceptionList)
             {
                if (words[ctr].Equals(exception) && ctr > 0)
                {
                   isException = true;
                   break;
                }
             }
    
             if (! isException)
                newWords[ctr] = words[ctr].Substring(0, 1).ToUpper() + words[ctr].Substring(1);
             else
                newWords[ctr] = words[ctr];	 
          }	
          return String.Join(" ", newWords); 			
       }
    }
    // Attempting to load the StringLib.dll assembly produces the following output:
    //    Unhandled Exception: System.BadImageFormatException: 
    //                         The format of the file 'StringLib.dll' is invalid.
    
    
    

    En el ejemplo siguiente se utiliza la reflexión para cargar un ensamblado denominado StringLib.dll. Si el código fuente se compila con un compilador .NET Framework 1.1, el método Assembly.LoadFrom produce BadImageFormatException.

    
    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          string title = "a tale of two cities";
    //      object[] args = { title}
          // Load assembly containing StateInfo type.
          Assembly assem = Assembly.LoadFrom(@".\StringLib.dll");
          // Get type representing StateInfo class.
          Type stateInfoType = assem.GetType("StringLib");
          // Get Display method.
          MethodInfo mi = stateInfoType.GetMethod("ToProperCase");
          // Call the Display method. 
          string properTitle = (string) mi.Invoke(null, new object[] { title } );
          Console.WriteLine(properTitle);
       }
    }
    
    
    

    Para resolver esta excepción, asegúrese de que el ensamblado del que se produce la excepción intenta cargar un ensamblado desarrollado mediante una versión compatible de .NET Framework.

BadImageFormatException utiliza HRESULT COR_E_BADIMAGEFORMAT, que tiene el valor 0x8007000B.

Para obtener una lista con los valores iniciales de las propiedades de una instancia de BadImageFormatException, vea los constructores BadImageFormatException.

.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Compatible con:

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar