|
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)
Espacio de nombres: System
Ensamblado: mscorlib (en mscorlib.dll)
El tipo BadImageFormatException expone los siguientes miembros.
| Nombre | Descripción | |
|---|---|---|
![]() ![]() ![]() ![]() | BadImageFormatException() | |
![]() ![]() ![]() ![]() | BadImageFormatException(String) | |
![]() | BadImageFormatException(SerializationInfo, StreamingContext) | |
![]() ![]() ![]() ![]() | BadImageFormatException(String, Exception) | |
![]() ![]() ![]() | BadImageFormatException(String, String) | |
![]() ![]() ![]() | BadImageFormatException(String, String, Exception) |
| Nombre | Descripción | |
|---|---|---|
![]() ![]() ![]() | Data | |
![]() ![]() ![]() | FileName | |
![]() | FusionLog | |
![]() ![]() ![]() | HelpLink | |
![]() ![]() ![]() ![]() | HResult | |
![]() ![]() ![]() ![]() | InnerException | |
![]() ![]() | Message | En XNA Framework 3.0, este miembro se hereda de Exception.Message. |
![]() ![]() ![]() | Source | |
![]() ![]() ![]() ![]() | StackTrace | |
![]() | TargetSite |
| Nombre | Descripción | |
|---|---|---|
![]() ![]() ![]() ![]() | Equals(Object) | |
![]() ![]() ![]() ![]() | Finalize | |
![]() ![]() ![]() ![]() | GetBaseException | |
![]() ![]() ![]() ![]() | GetHashCode | |
![]() | GetObjectData | |
![]() ![]() ![]() ![]() | GetType | 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(). |
![]() ![]() ![]() ![]() | MemberwiseClone | |
![]() ![]() | ToString | En XNA Framework, ToString() reemplaza a este miembro. |
| Nombre | Descripción | |
|---|---|---|
![]() | SerializeObjectState |
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.
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.



