Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

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.

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsBadImageFormatException()Inicializa una nueva instancia de la clase BadImageFormatException.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsBadImageFormatException(String)Inicializa una nueva instancia de la clase BadImageFormatException con el mensaje de error especificado.
Método protegidoBadImageFormatException(SerializationInfo, StreamingContext)Inicializa una nueva instancia de la clase BadImageFormatException con datos serializados.
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsBadImageFormatException(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úblicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsBadImageFormatException(String, String)Inicializa una nueva instancia de la clase BadImageFormatException con el mensaje de error y el nombre de archivo especificados.
Método públicoCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsBadImageFormatException(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

  NombreDescripción
Propiedad públicaCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsDataObtiene una colección de pares clave-valor que proporcionan información adicional definida por el usuario acerca de la excepción. (Se hereda de Exception).
Propiedad públicaCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsFileNameObtiene el nombre del archivo que causa esta excepción.
Propiedad públicaFusionLogObtiene el archivo de registro que describe el motivo por el que no se ha podido cargar un ensamblado.
Propiedad públicaCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsHelpLinkObtiene o establece un vínculo al archivo de ayuda asociado a esta excepción. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsHResultObtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsInnerExceptionObtiene la instancia Exception que produjo la excepción actual. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkMessageObtiene 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.
Propiedad públicaCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsSourceDevuelve o establece el nombre de la aplicación o del objeto que generó el error. (Se hereda de Exception).
Propiedad públicaCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsStackTraceObtiene una representación de cadena de los marcos inmediatos en la pila de llamadas. (Se hereda de Exception).
Propiedad públicaTargetSiteObtiene el método que produjo la excepción actual. (Se hereda de Exception).
Arriba

  NombreDescripción
Método públicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegidoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsFinalize 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úblicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetBaseExceptionCuando 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úblicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetObjectDataEstablece 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úblicoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsGetTypeObtiene 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 Biblioteca de clases portable Biblioteca de clases portable, este miembro se hereda de Object.GetType().


En .NET para aplicaciones de la Tienda Windows Windows 8, este miembro se hereda de Object.GetType().
Método protegidoCompatible con XNA FrameworkCompatible con Biblioteca de clases portableCompatible con .NET para aplicaciones de la Tienda WindowsMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoCompatible con XNA FrameworkToStringDevuelve 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().
Arriba

  NombreDescripción
Evento protegidoSerializeObjectStateSe 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 de propiedad iniciales de una instancia de BadImageFormatException, vea los constructores BadImageFormatException.

.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

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

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft