仅在.NET 4系统上运行.NET 3.5应用程序

Dan*_*n W 8 .net configuration .net-4.0 backwards-compatibility .net-3.5

这个问题可能已经多次提出过,但我无法得到适合我的典型解决方案.该提出的解决方案是把该在"的app.config"文件:

<configuration>
   <startup>
      <supportedRuntime version="v4.0"/>
   </startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)

但是使用简单的"Hello World"程序,我仍然会收到错误:"无法找到运行此应用程序的运行时版本.".

在某些背景下,我使用的是Windows XP(通过Windows 7上的Windows Virtual PC),并且只在XP上安装了.NET 4.0运行时.

经过一番研究,我找到了这个页面:http: //msdn.microsoft.com/en-us/library/ee941656.aspx#core

它提到"如果您的应用程序配置文件名为application-name.config,请将其重命名为application-name.exe.config.例如,将MyApp.config重命名为MyApp.exe.config.".

我试过这个,认为它可以解决问题,但我仍然得到"无法找到运行该应用程序的运行时版本".当我尝试使用.NET 4.0在WinXP上运行.NET 3.5(客户端配置文件或完整)应用程序时.

Dan*_*n W 6

我破解了它.这可能听起来很愚蠢,但事实证明配置文件需要与用户文件夹中的最终可执行文件一起使用.经过我所有的研究,这在任何地方似乎都没有得到澄清.我以为它只用于编译目的,是在开发人员的文件夹中.

在VS编辑器文件列表中,它可以保留为"app.config".但是,在编译时,VS会自动创建"{ProgramName} .exe.config"(并将其放入bin/release文件夹中).这是需要与可执行文件一起放在最终用户文件夹中的文件.

总而言之,是的,可以在只安装了.NET 4.0的系统上运行.NET 3.5应用程序.