2011-02-28 19 views
13

He descargado la aplicación web (código detrás de los archivos no existe, combinado con la carpeta dll en bin) de Windows Server 2008 donde está alojada y abierta con Visual Studio cuando depurar esa aplicación que muestra el error siguiente:Error: Este ensamblado está creado por un tiempo de ejecución más reciente que el tiempo de ejecución actualmente cargado.

"Could not load assembly because this assembly is built by a runtime newer than the currently loaded runtime"

no sé cómo puedo solucionar este problema y la aplicación de pruebas a nivel local. Por favor, ayúdenme.

Respuesta

19

Este error ocurre cuando el marco DotNet que está utilizando es de versión anterior que el utilizado para construir el montaje. Debe verificar qué versión de marco se utiliza para construir esos ensamblajes y luego usar el mismo o superior para depurar también.

+0

así que actualmente estoy en V2008, así que si instalo .NET Framework 4, ¿puedo ejecutar esa aplicación o tengo que instalar vs2010? –

+0

@Arun: si tienes dotNet 4 instalado, es suficiente. No es necesario instalar vs2010. No te preocupes –

+0

Esto puede suceder por muchos otros motivos también. –

0

Una de las referencias de los ensamblajes en el proyecto podría construirse usando una versión más reciente de .net, verificar la versión de cada referencia de ensamblaje y corregir en consecuencia.

3

que estaba recibiendo el mismo error al ejecutar un instalador de un servicio de Windows, incluso cuando se ejecuta el programa de instalación en el PC el programa de instalación se construyó sobre.

Resultó que aunque el proyecto de servicio de Windows se había actualizado a .NET 4.5, el proyecto de instalación que estaba haciendo el instalador todavía estaba configurado para usar .NET 2.0.

Para comprobar si el proyecto de instalación está utilizando una versión anterior de .NET que el proyecto para ser instalado, en el Explorador de soluciones de Visual Studio:

  1. ampliar el proyecto de instalación ;

  2. En el proyecto de instalación, expanda Dependencias detectadas;

  3. en Dependencias detectadas seleccione Microsoft .NET Framework y compruebe la propiedadversión. Seleccione la versión .NET apropiada de la lista desplegable;

  4. Vuelva a compilar el proyecto de instalación para crear una nueva versión del instalador.

+0

También tuvo este problema al instalar un servicio. La versión de dependencia detectada de .Net Framework estaba equivocada por alguna razón y cuando lo cambié, el problema desapareció. ¡Muchas gracias! – dbostream

+0

@Simon Tewsi es correcto, y funciona para mi caso de Visual Studio 2013 y .net framework 4. Seleccioné por error la opción "Cualquiera". ¡Gracias hermano! – Dung

+0

Gracias. PD Es posible que deba hacer doble clic en Microsoft .NET Framework para abrir propiedades. – Augis

1

Me acabo de encontrar con este problema cuando el conjunto fue construido con un marco blanco de .NET 4 y v4.0.30319 estaba instalado en el servidor, y otras aplicaciones 4.0 estuviera a cargo de éxito.

El problema surgió porque la aplicación se había creado originalmente como objetivo 2.0, y se aplicaron nuevos ensamblados 4.0, pero no el archivo app.config, que generalmente actualizamos por separado.

Esto significa que el atributo supportedRuntime no se actualizó en la configuración y provocó el error. Agregar lo siguiente a la aplicación.config fijado nuestra edición:

<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>

+0

¿En qué sección de web.config debo agregar esto? – realtebo

+1

En mi caso fue cuando estaba ejecutando varias aplicaciones en un servidor (no una aplicación web), y estaba actualizando una de ellas de 2.0 a 4.0, pero había olvidado actualizar app.exe.config junto con los archivos binarios . Así que el mío no era un web.config, pero la etiqueta '' es un elemento secundario del elemento '' de nivel superior, que también es cierto para web.config también lo tiene, así que solo lo intentaría en ese momento nivel superior, justo debajo de '' – Danny

0

Compruebe también el grupo de aplicaciones que esta página web se ejecuta como. Podría ser el marco predeterminado 2.0 en algunos servidores de Windows más antiguos. Cambiarlo a framework 4.0.

Cuestiones relacionadas