8

此问题在多次提问之前已被问到,但我无法获得适用于我的典型解决方案。该proposed solution是把这个在“的app.config”文件:在.NET 4系统上运行.NET 3.5应用程序

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

但一个简单的“Hello World”程序,我仍然得到错误:“无法找到一个版本的运行时间来运行这个应用。”。

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

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

它提到“如果你的应用程序配置文件被命名为应用name.config,其重命名为应用name.exe.config例如,重命名。 MyApp.config到MyApp.exe.config“。

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

+1

这是众所周知的工作。你实际上没有将它重命名为“MyApp.exe.config”,是吗?将MyApp替换为程序的名称。 – 2012-03-31 21:36:37

+0

不,我将它从“app.config”更名为“app.exe.config”,因为它已经被命名为“app.config”。我的程序名称实际上是“testOnNet40only”。下面的Nathan似乎意味着用户需要CLR 2.0-3.5,所以我不确定是否有任何工作。 – 2012-03-31 21:42:45

+1

这似乎是我在说什么。 “app.exe.config”不好,你必须将它命名为“testOnNet40Only.exe.config”。如果您在启用主机进程的情况下使用调试器,那么它需要命名为“testOnNet40Only.vshost.exe.config”。 – 2012-03-31 21:50:45

回答

6

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

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

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

相关问题