运行.Net4.0程序是否要安装之前的.Net版本

fancystyle 2011-04-09 04:17:15
网上说法不一,很多人说依赖老的版本,MS说的 .net4.0 in-process side-by-side compatibility 也没太明白,以下是我用一个简单的控制台程序实测的情况

测试环境:
Win XP XP3 卸载了.net其他版本,只安装了.net 4.0,所调用的dll为之前用VS2008编译.
(若dll是源码工程放到解决方案一起编译,dll工程版本设成V2.0 V3.5,最终程序都可以正常)

主程序Console.exe 调用程序集 dll 运行结果
.Net4.0 .Net 2.0 正常
.Net4.0 Client Profile .Net 2.0 编译不了
.Net4.0 .Net 3.5 正常
.Net 2.0 无 不能运行
.Net3.5 无 不能运行

结论:
1.编译为.Net 4.0的应用程序,不需要安装之前的版本.并且可以调用老版本程序集.Target为Client Profile的不可以.
2.单独运行之前版本的.net 程序,需要安装对应的framework

我的结论正确否?欢迎讨论
...全文
809 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dobzhansky 2011-04-11
  • 打赏
  • 举报
回复
v2 的 clr 就够了
crackdung 2011-04-11
  • 打赏
  • 举报
回复
no,不需要
fancystyle 2011-04-11
  • 打赏
  • 举报
回复
如此现在如果用.NET做界面,不如直接上.NET4.0 WPF. 2.0 也有20多M
324374 2011-04-11
  • 打赏
  • 举报
回复
2说明一下,貌似针对CLR 2.0的程序在没有CLR 2.0的情况下(即没有安装有.NET Framework 2.0/3.0/3.5)可以运行在CLR 4.0下(.NET Framework 4.0),这个我没有专门做过测试(因为电脑里是CLR 2.0和4.0都安装的),你可以和试试修改2.0程序的xxx.exe.config

<configuration>  <startup>       <supportRuntime version="4.0.20506"/>  </startup> </configuration> 


还有MSDN的一些好文章:
http://msdn.microsoft.com/en-us/library/8477k21c.aspx
http://blogs.msdn.com/b/clrteam/archive/2009/06/07/in-process-side-by-side-part-2-common-in-proc-sxs-scenarios.aspx
amandag 2011-04-11
  • 打赏
  • 举报
回复
如果只运行.NET 4.0的程序不需要
subxli 2011-04-11
  • 打赏
  • 举报
回复
4.0已经包含之前的版本了
叶子 2011-04-11
  • 打赏
  • 举报
回复
安装3.5的时候,自动安装1.1 2.0
threenewbee 2011-04-10
  • 打赏
  • 举报
回复
你的结论正确。

事实上.NET目前有3个版本,1.1 3.5SP1(包括2.0 3.0) 4.0
hhddzz 2011-04-10
  • 打赏
  • 举报
回复
不需要

你说的第二个问题,只是.NET4.0默认不“接手”针对低版本.NET的托管程序(或者返回来说针对低版本.NET的托管程序默认不在.NET4.0上运行)
用应用程序配置文件强制指定supportedRuntime为4.0就行了
namdamlu 2011-04-10
  • 打赏
  • 举报
回复
Windows 7 自带的.Net Framework 没有 .Net 4.0 啊!??
段传涛 2011-04-10
  • 打赏
  • 举报
回复
4.0版本包含了其他版本的所需要的组件。
段传涛 2011-04-10
  • 打赏
  • 举报
回复
运行.Net4.0程序是否要安装之前的.Net版本
-------------------------------
这个不需要的, 你安装了。net4.o之后 就直接可以用了。
双木宝宝 2011-04-10
  • 打赏
  • 举报
回复
在微软自己的下载中心(http://www.microsoft.com/downloads/zh-cn/default.aspx)里的Framework3.5完整安装包里面自带2.0,3.0和3.5。Framework4.0的安装包里只有4.0。
1#楼说的不完全正确,Windows7自带了Framework3.5,3.0,2.0和1.0。
MSDNXGH 2011-04-10
  • 打赏
  • 举报
回复
我是之前是4.0的,后来项目需要,又安装了3.5,2.0的,都没问题,
楼主先备份系统,自己弄一次,不就清楚了
子夜__ 2011-04-09
  • 打赏
  • 举报
回复
单独运行之前版本的.net 程序,需要安装对应的framework

Windows7 有3.5...

VS2010 可以将05 08版本的程序转到VS2010跑

如果机器没有3.5 跑3.5需要安装。

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧