318 votos

Recibo un error de "Se intentó cargar un programa con un formato incorrecto" en un proyecto de replicación de Sql Server.

El error exacto es el siguiente

No pudo cargar el archivo o el ensamblaje "Microsoft.SqlServer.Replication", Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' o una de sus dependencias. Se intentó cargar un programa con un formato incorrecto.

Recientemente he empezado a trabajar en este proyecto de nuevo después de un traslado de dos meses a otro proyecto. Funcionó perfectamente antes, y he comprobado dos veces todas las referencias.

404voto

bboyle1234 Puntos 2347

La respuesta anterior es correcta, pero es posible que también tenga que habilitar las aplicaciones de 32 bits en su AppPool.

Fuente: http://www.alexjamesbrown.com/uncategorized/could-not-load-file-or-assembly-chilkatdotnet2-or-one-of-its-dependencies-an-attempt-was-made-to-load-a-program-with-an-incorrect-format/

Mientras configuraba una aplicación para ejecutarse en mi máquina local (ejecutando Vista 64bit) me encontré con este error:

No pudo cargar el archivo o el ensamblaje ChilkatDotNet2 o uno de sus dependencias. Se intentó cargar un programa con una incorrecta formato.

Obviamente, la aplicación utiliza Componentes del ChilKat pero parece que la versión que estamos usando, es sólo la versión de 32 bits.

Para resolver este error, he configurado mi grupo de aplicaciones en IIS para permitir aplicaciones de 32 bits. Abre el IIS Manager, haz clic con el botón derecho del ratón en el grupo de aplicaciones y selecciona Configuración avanzada (ver más abajo)

enter image description here

Luego establezca "Habilitar aplicaciones de 32 bits" en Verdadero.

enter image description here

¡Todo listo!

121voto

baldy Puntos 2922

He encontrado la solución. Recientemente he actualizado mi máquina a Windows 2008 Server de 64 bits. El espacio de nombres SqlServer.Replication fue escrito para plataformas de 32 bits. Todo lo que necesitaba hacer para que funcionara de nuevo era establecer la plataforma de destino en las propiedades de construcción del proyecto a X86.

52voto

Harpal Puntos 769

Ir a IIS -> Pool de aplicaciones -> Configuración avanzada -> Habilitar aplicaciones de 32 bits

11voto

Kyralessa Puntos 76456

Para aquellos que obtienen este error en un ASP.NET MVC 3 proyecto, dentro del propio Visual Studio:

En una aplicación ASP.NET MVC 3 en la que estoy trabajando, intenté añadir una referencia a Microsoft.SqlServer.BatchParser a un proyecto para resolver un problema en el que faltaba en un servidor de despliegue. (Nuestra aplicación usa SMO; la solución correcta fue instalar Sql Server Native Client y un par de cosas más en el servidor de despliegue).

Incluso después de que eliminé la referencia al BatchParser, seguí obteniendo el error de "Se hizo un intento...", haciendo referencia a la DLL del BatchParser, en cada página ASP.NET MVC 3 que abrí, y a ese error le siguieron docenas de errores de análisis de página.

Si esto te pasa, haz una búsqueda de archivos y mira si el DLL está todavía en uno de tus proyectos \bin carpetas. Incluso si haces una reconstrucción, Visual Studio no necesariamente limpia todo lo que hay en tu \bin carpetas. Cuando borré el DLL de la papelera y volví a construirlo, el error desapareció.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X