8

Esta pregunta se ha realizado varias veces, pero no puedo conseguir que la solución típica me funcione. El proposed solution es poner esto en el archivo "app.config":Ejecutar aplicaciones .NET 3.5 en .NET 4 solo sistemas

<configuration> 
    <startup> 
     <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

Pero con un simple programa "Hello World", todavía consigo el error: "No se puede encontrar una versión del tiempo de ejecución para ejecutar esta solicitud.".

Para algunos antecedentes, estoy usando Windows XP (a través de Windows Virtual PC en Windows 7), y solo instalé el tiempo de ejecución de .NET 4.0 en XP.

Después de algunas investigaciones, he encontrado esta página: http://msdn.microsoft.com/en-us/library/ee941656.aspx#core

Se menciona "Si el archivo de configuración de la aplicación se denomina aplicación name.config, cambie el nombre de la aplicación-name.exe.config Por ejemplo, cambiar el nombre. MyApp.config a MyApp.exe.config. ".

Intenté eso, pensando que podría resolver el problema, pero sigo teniendo "No se puede encontrar una versión del tiempo de ejecución para ejecutar esta aplicación". cuando intento ejecutar la aplicación .NET 3.5 (perfil de cliente o completo) en WinXP con .NET 4.0.

+1

Esto se sabe que funciona bien. En realidad, no lo cambió el nombre a "MyApp.exe.config", ¿verdad? Reemplace MyApp con el nombre de su programa. –

+0

No, cambié el nombre de "app.config" a "app.exe.config" porque ya se llamaba "app.config". El nombre de mi programa es realmente "testOnNet40only". Nathan a continuación parece implicar que el usuario necesita CLR 2.0-3.5 después de todo, así que no estoy seguro si algo funcionará. –

+1

Eso parece ser de lo que estoy hablando. "app.exe.config" no es bueno, debe ponerle el nombre "testOnNet40Only.exe.config". Y si usa el depurador con el proceso de alojamiento habilitado, entonces debe llamarse "testOnNet40Only.vshost.exe.config". –

Respuesta

6

Lo he descifrado. Esto puede sonar tonto, pero resulta que el archivo de configuración debe estar con el ejecutable final en la carpeta del usuario. Después de toda mi investigación, esto no pareció aclararse en ninguna parte. Pensaba que solo se usaba para compilar para estar en la carpeta del desarrollador.

En la lista de archivos del editor VS, puede permanecer como "app.config". Sin embargo, cuando se compila, VS crea automáticamente "{ProgramName} .exe.config" en su lugar (y lo coloca en la carpeta bin/release). Este es el archivo que debe ir en la carpeta del usuario final junto con el ejecutable.

Para resumir, sí, es posible ejecutar una aplicación .NET 3.5 en un sistema que solo tiene instalado .NET 4.0.

Cuestiones relacionadas