只安装.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 版本

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


相关文章推荐

【回答】: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
  • 22765

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数

给定A, B两个整数,不使用除法和取模运算,求A/B的商和余数。 1.   最基本的算法是,从小到大遍历: for (i = 2 to A -1)          if (i * B > A)...

利用K-means聚类算法根据经纬度坐标对中国省市进行聚类

K-means聚类算法是一种非层次聚类算法,在最小误差的基础上将数据划分了特定的类,类间利用距离作为相似度指标,两个向量之间的距离越小,其相似度就越高。程序读取全国省市经纬度坐标,然后根据经纬度坐标进...

Radon变换理论介绍与matlab实现--经验交流

本人最近在研究Radon变换,在查阅了各种资料之后在此写下个人的理解,希望与各位牛牛进行交流共同进步,也使得理解更加深刻些。 Radon变换的本质是将原来的函数做了一个空间转换,即,将原来的XY平...

Matlab绘图-很详细,很全面

Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Ma...

CT图像重建技术

由于csdn贴图不方便,并且不能上传附件,我把原文上传到了资源空间CT图像重建技术 1.引言 计算机层析成像(Computed Tomography,CT)是通过对物体进行不同角度的射线投影测量而...

linux查找目录下的所有文件中是否含有某个字符串

查找目录下的所有文件中是否含有某个字符串  find .|xargs grep -ri "IBM"  查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名  find .|xargs g...

Radon变换入门matlab CT原理

http://hi.baidu.com/hi9394/blog/item/0d492b8bfd714700c8fc7aa9.html 简介 图像投影,就是说将图像在某一方向上做线性积分(或理解为累...

Intel系列处理器的三种工作模式

Intel系列处理器的三种工作模式 微机中常用的Intel系列微处理器的主要发展过程是:8080,8086/8088,80186, 80286,80386,80486,Pentium,Pen...

js弹出框、对话框、提示框、弹窗总结

js弹出框、对话框、提示框、弹窗总结 一、JS的三种最常见的对话框 [javascript] view plaincopy //=...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:只安装.net4.0运行.net2.0程序兼容问题
举报原因:
原因补充:

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