只安装.net4.0运行.net2.0程序兼容问题

转载 2012年09月20日 21:29:37

由于 .NET 4.0 使用新版本的 CLR,变化也不少,

例如:

mscoree.dll 变为 mscoree.dll 和 mscoreei.dll,

mscorwks.dll 变为 clr.dll,

mscorjit.dll 变为 clrjit.dll。

这导致在没有安装 .NET 2.0 的情况下,.NET 2.0 程序默认无法在 .NET 4.0 环境下运行(未安装 .NET 2.0/3.0/3.5)。(纠正:不是文件名的变化导致无法运行,而是微软的新策略是强烈建议程序在开发时使用的运行时版本下运行,这样可以保证最大的兼容性

那么怎么办呢?

Visual Studio 2010 对项目可以设置“目标框架”,在没有安装 .NET 3.5 的情况下可以选择 .NET Framework 4、.NET Framework 4 Client Profile,在改变选择之后,会生成一个配置文件,内容如下:

 

<?xml version="1.0"?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> </configuration>

把这个文件名改成你需要运行的程序的配置名,同时把程序与配置文件放到一起,这个时候就可以打开 .NET 2.0 的程序了。

 

以上只是我当时想出此方法的思路,当然你没有必要这样做。

你只要搞一个配置文件或者将以上配置文件内容添加到已有的配置文件中。

 

supportedRuntime version="v4.0" 强制当前程序在 CLR 4.0 环境下运行,当然你可以设置 1.0、1.1、2.0,前提是运行环境内有对于版本的运行时。(第二次纠正:如果强制在 CLR 2.0 下运行,必须设置 supportedRuntime version="v2.0.50727",如果设置 v2.0 无效。)

 

顺便说明目前的运行时版本只有 1.0、1.1、2.0、4.0,没有3.0、3.5。

 

实际上仅对 Windows XP 需要这样做,因为 XP 默认情况下没有安装任何 .NET 版本,Windows Vista/7 默认情况下分别安装了 .NET 3.0、.NET 3.5,具有 CLR 2.0。

以上做法可能会有兼容性问题,大型复杂程序不推荐这样做。小工具或者自行编写的程序(例如我)可以这样做,出了问题自行解决。这样在 XP 下,就不用安装 N 个 .NET 版本

本文没有说明的内容,可以自行摸索。


NET4.0环境下兼容.NET2.0程序集,出现异常处理办法

在vs2010中 首先检查程序集属性配置 框架是4.0的 打开app.config文件 在startup中设置useLegacyV2RuntimeAct...
  • zy332719794
  • zy332719794
  • 2012年05月02日 14:11
  • 1629

.NET2.0程序集无法在.net 4.0 中运行的解决方案

首先在MSDN上看到 4.0 的更新日志中有如下这条: .NET Framework 4 不能自动使用自己的公共语言运行时版本来运行由 .NET Framework 早期版本生成的应用程序。 若要使...
  • FL_xin
  • FL_xin
  • 2015年01月14日 13:05
  • 4634

Microsoft .NET Framework 各个版本之间的关系?如何安装2.0,3.0,4.0?向下兼容?

2014-06-15 10:21 12827人阅读 评论(2) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载。 .Net版本之间是有一定联系的,目前(20...
  • xcntime
  • xcntime
  • 2016年10月29日 16:06
  • 1100

【回答】:Microsoft .NET Framework 各个版本之间的关系?如何安装2.0,3.0,4.0?向下兼容?

.Net版本之间是有一定联系的,目前(2012-03月)为止微软推出了3个版本的CLR,分别是 1.1, 2.0 , 4.0, 并且你要注意的是 .Net 4是基于CLR4的,而.Net 2.0 ...
  • dijkstar
  • dijkstar
  • 2014年06月15日 10:21
  • 23695

.NET2.0程序 在.net 4.0 中运行的解决方案

问题描述: .NET Framework 4 不能自动使用自己的公共语言运行时版本来运行由 .NET Framework 早期版本生成的应用程序。 若要使用 .NET Framework 4 运行较...
  • yingwang9
  • yingwang9
  • 2016年08月01日 17:22
  • 375

在.NET4.0下运行.NET2.0程序集

        微软发布的dotnetfx2.0是相当成功的开发框架,由此产生了大量基于.NET2.0的应用,微软后来发布的dotnetfx3.0及dotnetfx3.5都是对2.0的扩展,并添加了很...
  • boral_li
  • boral_li
  • 2010年10月22日 16:55
  • 4653

关于,net Framework各版本兼容性问题

昨天给同事安装用友的软件,提示要求先安装.net 2.0。本来系统已经安装了.net 4.0,但是还是提示要装.net 2.0。我想请教一下:      有些软件要求先安装.NET Fram...
  • CNHK1225
  • CNHK1225
  • 2015年07月21日 11:18
  • 7423

Win10安装.net framework 4.0失败提示已是操作系统一部分如何解决(一)

由余matlab仿真,安装后缺少C编译器,前提必须安装.net framework 4.0,所以想在win10系统电脑中安装microsoft .net framework 4.0。可是在安装过程中却...
  • qq_35409640
  • qq_35409640
  • 2017年11月10日 17:35
  • 1512

.NET4.0环境下要使用.NET2.0及.NET3.5的程序

useLegacyV2RuntimeActivationPolicy="true">     ==============================================...
  • cooleader320
  • cooleader320
  • 2012年03月22日 23:46
  • 2683

C# .NET4.0 改为 到.NET2.0 报错解决方法

如今的VS开发工具都是VS2012或者VS2015版本,高版本开发的程序默认使用的都是.NET4.0或者更高的框架,其他电脑在运行该程序时需要安装对应版本的.NET。目前winXP和Win7系统默认都...
  • yinjun151
  • yinjun151
  • 2016年05月24日 17:30
  • 2010
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:只安装.net4.0运行.net2.0程序兼容问题
举报原因:
原因补充:

(最多只允许输入30个字)