.NET 4.0运行.NET 2.0兼容方法 (2)

安装了4.0的框架,没有安装2.0的框架,2.0的程序能运行吗,exe 和网站,
问题:如果不能运行,还能再安装2.0的框架吗

回答:能

问题:原来装了2.0 ,再装4.0 原来2.0的还能用吗

回答:能
新特性wpf
sql2000 2005 与 .net 4.0 有冲突吗
以前1.1生成的 dll 如压缩控件,4.0报错吗
嵌套在我们已有的2.0框架中调用,就出现问题,2.0的程序无法调用4.0的dll,这个请问有什么解决方案吗?
--------,4.0相对于2.0/3.0/3.5来说确实是一个新的版本增加了很多的东西。一般情况下,高版本调用低版本没问题,但低版本是无法调用高

版本的!因为很多类库低版本是没有的!不能引用,因为2.0,3.5都是CLR2.0生成的,4.0是CLR4.0生成的
======================================================================================================
.NET框架4.0上是可以运行为2.0、3.0、3.5设计的应用程序的,但出于兼容性方面的考虑,默认情况下这种功能不会启用。微软的建议是由程

序的提供者重新编译,或者增加一个config文件来指示旧程序可以运行在4.0的环境中——不过不建议普通用户这么做。所以简而言之,你还

是把2.0或者3.5的框架装上比较好。另外,.NET框架3.5、3.0本质上是基于2.0的一个扩展,如果删掉了2.0,3.0和3.5的应用程序也是没法使

用的。
让.NET 4.0 直接运行 .NET 2.0 程序的兼容方法2010-11-16 8:45需要在相同目录下放一个.config文件,例如xxx.exe,就需要一个

xxx.exe.config文件,内容如下:

<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActiva<wbr>tionPolicy="true"&gt;<br><wbr><wbr><wbr> &lt;supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/&gt;<br> &lt;/startup&gt;<br> &lt;/configuration&gt;</wbr></wbr></wbr></wbr>

http://msdn.microsoft.com/zh-cn/library/w4atty68.aspx
<wbr></wbr>


==========================================================================================================

支持的操作系统:Windows 7;Windows 7 Service Pack 1;Windows Server 2003 Service Pack 2;Windows Server 2008;Windows Server 2008

R2;Windows Server 2008 R2 SP1;Windows Vista Service Pack 1;Windows XP Service Pack 3
Windows XP SP3
Windows Server 2003 SP2
Windows Vista SP1 或更高版本
Windows Server 2008(在服务器核心角色上不受支持)
Windows 7
Windows Server 2008 R2(在服务器核心角色上不受支持)
Windows 7 SP1
Windows Server 2008 R2 SP1

===================================================================
http://www.cnblogs.com/yaoligen/archive/2010/11/06/1870761.html
http://www.360doc.com/content/11/1001/23/1824154_152728282.shtml
----------------------------------------------------------------------
SQL Server开始对.NET 4.0提供有限支持
作者:IT168出处:论坛2010-01-28 08:10最近微软发布了SQL Server 2008 Express SP1的更新,现在它可以支持 .NET 4.0 Beta 2了。此前

,用户若想使用SQL Server 2008 Express需要先安装.NET 2.0 SP2或是.NET 3.5 SP1。然而,目前对.NET 4.0的支持是非常有限的。

  由于SQLCLR的缘故,SQL Server 2008 Express无法更换CLR的版本。为了防止崩溃情况的发生,SQL Server 2008 Express继续将CRL 2.0

作为唯一支持的CLR版本。这意味着虽然用户可以在只有.NET 4.0的机器上安装SQL Server Express,但却无法使用其众多的功能,包括内建的

CLR类型,如geometry、geography以及hierarchyid等。

  只有SQL Server Express的运行时版本才提供了对.NET 4.0的支持;而其他的版本(SQL Server 2008 Express with Tools和SQL Server

2008 Express with Advanced Services)仍旧需要使用.NET Framework 3.5 SP1。


---------------------------------------------------------

如果我系统中不安装3.5的运行库,只安装4.0的运行库,那样3.5编译的exe程序能运行吗?
<wbr><wbr><wbr><wbr><wbr><wbr><wbr> 不能运行</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> .NET 3.0和.NET 3.5都是对.NET 2.0 Framework的扩展.他们的CLR都是2.0环境的,而 .NET 4.0的CLR是4.0环境<br><wbr><wbr><wbr> VS.NET编写出的应用程序均需在CLR的监控下运行 而CL提供类库的支持</wbr></wbr></wbr></wbr></wbr></wbr>

----------------------------------------------+

解决.NET 4.0下无法直接运行.NET 2.0程序的问题
时间:2010-2-10 9:53:28 来源:www.cnblogs.com 作者:洪星
-
-
如果你在使用vs2010的.net4.0运行不了.net2.0项目的话,可以来看看本文。

由于 .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,在改变选择之后,会生成一个配置文件,内容如下:

<wbr></wbr>

<?xml version="1.0"?><configuration><wbr> &lt;startup&gt;<wbr><wbr><wbr> &lt;supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/&gt;<wbr></wbr></wbr></wbr></wbr></wbr>

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

的程序了。

<wbr></wbr>

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

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

<wbr></wbr>

supportedRuntime version="v4.0" 强制当前程序在 CLR 4.0 环境下运行,当然你可以设置 1.0、1.1、2.0,前提是运行环境内有对于版本的

运行时。(第二次纠正:如果强制在 CLR 2.0 下运行,必须设置 supportedRuntime version="v2.0.50727",如果设置 v2.0 无效。)

<wbr></wbr>

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

<wbr></wbr>

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

3.0、.NET 3.5,具有 CLR 2.0。

以上做法可能会有兼容性问题,大型复杂程序不推荐这样做。小工具或者自行编写的程序(例如我)可以这样做,出了问题自行解决。这样在

XP 下,就不用安装 N 个 .NET 版本。
<wbr></wbr>

文章来自学IT网:http://www.xueit.com/html/2010-02-10/21-1565025410906.html
--------------------------------------------------------------------------


微软关于.NET各个版本的核心和区别以及学习建议
2010-08-13 15:45 [查查吧] 来源:www.chachaba.com

微软的开发平台.NET Framework版本很多,给很多初学者学习和技术选型带了一些困扰,这里曹老师信箱就结合前阶段很多咨询来信将微

软.NET的各个版本做一简单介绍,并给出一些对于初学者可行的学习建议。

这里提醒大家要注意的是很多其他的一些学习教育综合网站转载了很多我们的文章,但却是时间很老的内容,所以有很多来信还在咨询怎么考

MCSD甚至.NET 4.0微软考试的内容,这些考试和内容在现如今已经考试作废了,证书也截止了,所以要了解最新的微软考试新闻和动态,还是

直接访问IT认证考试资源网即可。

了解.NET首先需要了解一个专业名词CLR:

CLR是什么
CLR就是Common Language Runtime(通用语言运行时)的缩写,易证宝老师给一个简单的例子来解释CLR就是一个翻译,把.NET的语言翻译为机

器可以执行的语言。

.NET Framework 1.0 和.NET Framework 1.1
CLR版本1.0和1.1,对应微软Visual Studio 2003软件,对应证书就是MCSD和MCAD,目前已经考试作废,应用的人也非常少了。

.NET Framework 2.0
CLR版本2.0,对应微软Visual Studio 2005软件,对应证书就是MCPD .NET 2.0系列证书;
ITExamPrep.com点评.NET 2.0是目前广泛使用的版本,提供了大部分的基础功能。.NET 2.0是一个稳定的版本,其核心效率较前两个版本有明

显的提高,后续的版本都是基于.NET 2.0的,如果你已经安装了.NET 1.0或者.NET 1.1,可以放心的安装.NET 2.0,三者不会冲突。并且IT认

证考试资源网的老师介绍VS2005的项目可以平稳的升到VS2008上,在VS2008下做VS2005的项目,用的编译器和类库同VS2005都是一样的。

.NET Framework 3.0
CLR版本2.0,新增WPF、WCF、WF 和 Card Space 等功能。

.NET Framework 3.5
CLR版本2.0,对应微软Visual Studio 2008软件,对应证书就是MCPD .NET 3.5系列证书;
新增LINQ、ADO.NET Entity Framework 等功能。IT认证考试资源网的老师介绍.NET 3.0和3.5其核心部分还是.NET 2.0的东西,在2.0基础上增

加了一些个类库。如果易证宝学员已经有2.0的基础,那建议可以选择.NET 3.5。首先.NET 3.5是向下兼容的,.NET 3.5也加入了很多新的知识

,典型的有LINQ。它类似于java中的hibernate技术。但是在某些功能上更为强大,使得程序和数据库交互时使用了一种全新的模式,而不再是

以前那种在类中写sql语句的方式。

并且IT认证考试资源网的老师介绍ASP.NET3.5比2.0多了很多特性,比如LINQ(语言集成查询,方便你在C#/VB.NET代码中进行SQL 查询,语法

类似,方便快捷), ASP.NET MVC 1.0(开发特别快,运用JSON方便你快速实现AJAX技术), WCF(用作服务,比以前的WebService强大多了)。

.NET Framework 4.0
CLR版本4.0,对应微软Visual Studio 2010软件,对应证书就是MCPD .NET 4.0系列证书;
全新的CLR版本,并且增加了 Parallel LINQ、Task Parallel Library 等功能。目前.NET 4.0据ITExamPrep.com报道是今年夏天才发布出来,

目前学习资源、市场份额还有考试科目都还不全面,所以不建议一般易证宝学员们选择.NET 4.0作为自己职业规划第一门MCPD证书。

----------------------------------------------------------------------------------------------------------------------


http://www.diybl.com/course/4_webprogram/asp.net/netjs/20100729/504392.html

.net framework 4.0环境下遇到版本不同编译不通过的解
文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/4_webprogram/asp.net/netjs/20100729/504392.html

本文内容:

<wbr><wbr><wbr><wbr><wbr><wbr> 1.问题引出</wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr> 2.问题解决</wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr> 3.原因分析</wbr></wbr></wbr></wbr></wbr></wbr>

 

<wbr><wbr><wbr><wbr><wbr><wbr> 最近部门的开发环境都更新到了WIN7+.NET framework4+VS2010上,在体验新技术和新环境带给我们提高效率的方式方法的同时也带来</wbr></wbr></wbr></wbr></wbr></wbr>

了一些兼容性的问题;这几天项目闲暇时在研究SQLite,在做实验的时候碰到个问题,代码编译通过执行时反复异常中断,查到后面原来是

SQLite.dll是在framework2.0环境下编译的而现在的运行环境是framework4.0,所以就出现了运行异常,如图:

    

    由于以后的开发过程中,可能会引用一些第三方的组件,有可能是老的framework版本下编译的,同样会出现此类的问题,所以在本文

中提供一个解决办法和说明造成此问题的原因。

    查阅了相关资料,stackoverflow.com上建议在config文件中增加配置:

    

<wbr></wbr>

1 <startup useLegacyV2RuntimeActiva<wbr>tionPolicy="true"&gt;<br> 2<wbr><wbr> &lt;supportedRuntime version="v4.0"/&gt;<br> 3 &lt;/startup&gt;<br><wbr></wbr></wbr></wbr></wbr>

    MSDN上也对此方法进行了阐述,参见http://msdn.microsoft.com/en-us/library/bbx34a2h(VS.100).aspx

    

    但是使用此方法编译后问题仍然没有解决,但是问题可以明确锁定为.net runtime环境的问题了。

    

<wbr></wbr>

<wbr></wbr>

1<wbr><wbr><wbr><wbr> &lt;startup useLegacyV2RuntimeActiva<wbr>tionPolicy="true"&gt;<br> 2<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;supportedRuntime version="v4.0"/&gt;<br> 3<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> &lt;requiredRuntime version="v4.0.30319" /&gt;<br> 4<wbr><wbr><wbr><wbr> &lt;/startup&gt;<br><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr>    再次运行,问题解决。这下需要了解是什么原因造成的?</wbr>

    supportedRuntime标签用来 具体说明应用程序支持的是哪个.framework运行时的版本;

    requiredRuntime标签用来具体说明应用程序只支持1.0版本的公用语言运行时间。如果使用1.1版本或者后面的版本来编译,应用程

序必须使用<supportedRuntime>元素;

    注意:

    <supportedRuntime>必须通过1.1版本或后面的版本而编译的应用程序来使用。只支持1.0版本的运行时间的应用程序必须使用

<requiredRuntime>。

    

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 再次查阅CLR Runtime版本的相关资料,引用以下CLR运行规则和各版本间关系汇总表格,如下:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

    规则:    

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 1. CLR4.0及以上版本编译的应用程序总是运行在应用程序所被编译的CLR版本上;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 2. CLR4.0以下版本编译的应用程序优先运行在被编译的CLR版本上,如果此版本不存在,则运行最新的小于CLR4.0的版本;</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

    汇总如下:    

EXE被编译的CLR版本号
<wbr>机器上安装有CLR 1.1?<br><wbr>机器上安装有CLR 2.0?<br><wbr>机器上安装有CLR 4.0?<br><wbr>结果<br><wbr><br> 1.1<br><wbr>是<br><wbr>无所谓<br><wbr>无所谓<br><wbr>加载CLR 1.1<br><wbr><br> 2.0<br><wbr>无所谓<br><wbr>是<br><wbr>无所谓<br><wbr>加载CLR 2.0<br><wbr><br> 1.1<br><wbr>否<br><wbr>是<br><wbr>无所谓<br><wbr>加载CLR 2.0<br><wbr><br> 1.1<br><wbr>否<br><wbr>否<br><wbr>是<br><wbr>失败<br><wbr><br> 2.0<br><wbr>无所谓<br><wbr>否<br><wbr>是<br><wbr>失败<br><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 至此我们就能很清楚的搞清各个CLR版本之间的联系了。</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

<wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 总结:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 微软每次版本升级都会造成一些新的问题的出现,早年从CLRv1.0到CLRv2.0曾经也造成很多的困惑,可能也是由于过大的</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

组织造成不能面面俱到吧,希望在今后的版本升级中能真正做到无缝的版本联接。

<wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 鸣谢:</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 本文关于CLR版本的分析引用了微软NET 4.0团队张羿总结的各版本间的关系,在此感谢他给予我们的支持。</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

<wbr>    </wbr>


文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/4_webprogram/asp.net/netjs/20100729/504392.html


-------------------------------------------------------------------------------------------------------

<wbr></wbr>

VS 2010 和 .NET 4.0 之干净的Web.Config文件
无可否认,今天所涉及的东西在ASP.NET 4.0中是个非常小的(但我还是认为是个非常棒的)变动:干净,简洁的web.config文件。
  第一次在Visual Studio 2010中使用 文件->新项目 创建空白的ASP.NET 4.0 Web应用时你就会看到这个改进,所以我觉得把这个东西做为

我的系列的第一篇是非常恰当的。
  .NET 3.0 和 3.5中的Web.config文件
  在最近几个版本中,新ASP.NET项目中的web.config文件的大小一直在稳步增长。例如,Visual Studio 2008 SP1中加到新的web项目中的

默认web.config文件已有126行,所含的东西包罗万象,从标识的定义到用于ASP.NET HTTP管道中的处理器和模块的定义等等。
  这个文件大小的增加是因为.NET 3.0 和 .NET 3.5用的是跟.NET 2.0一样的CLR和machine.config配置文件,只不过是在安装时加了或更新

了框架中的程序集而已。为避免意外地覆盖机器上原有的2.0 machine.config中定制设置的风险,我们没有在其中注册随.NET 3.0 和 .NET

3.5版本而来的新的ASP.NET功能带来的标识定义和处理器和模块,而是选择让新的项目在应用的局部web.config中注册这些设置。这个做法比

较安全,但也导致了web.config文件大小的增加,而且变到愈加复杂,读起来也更困难。
  .NET 4中的Web.config文件
  .NET 4 包括了一个新的CLR版本,以及特定于.NET 4的新的machine.config文件(是与.NET 2, .NET 3 和 .NET 3.5中所用的

machine.config文件并列安装的)。
  新的.NET 4 machine.config文件现在自动注册我们几年来添加的所有的ASP.NET 标识部分(section), 处理器和模块,包括了对应于下列

功能的设置:
  •ASP.NET AJAX
  •ASP.NET 动态数据
  •ASP.NET 路径选择或导向(现在可为ASP.NET WebForms和ASP.NET MVC两者兼用)
  •ASP.NET 图表控件(现在内置于ASP.NET V4中了)
  这意味着,在VS 2010中创建新的空白ASP.NET应用项目时,你会发现新的应用级默认web.config文件既干净又简洁:
  上面的第一个配置部分告诉ASP.NET默认允许应用调试,并向Visual Studio指定在提供intellisense时该定向的.NET版本(VS 2010支持多

定向,IDE中的intellisense会根据你当前针对的框架版本自动改变)。
  第二个配置部分表示在IIS7中运行ASP.NET应用时是否使用“integrated(集成)”模式,该模式控制了是否对应用中的所有请求或者只是针

对特定于ASP.NET的URL才运行ASP.NET HttpModules模块。我们在新应用的应用级web.config文件默认启用这个模式,因为,为兼容的原因,注

册在机器级的默认IIS7设置是只对特定于ASP.NET的URL才运行模块,并不是对所有的请求。
  结束语
  .NET 4中简化了的web.config文件,其变动貌似细小,但我还是认为非常之棒,在你创建新的ASP.NET应用时将使得其默认体验更加干净,

也更为容易理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值