本人一直以为.net各个版本都是独立的,用4.5写的程序,不能在只装了4.0的机器上跑,反之亦然。但是今天写了个4.0的dll,4.5的主程序,主程序调用dll时本人以为对4.0和4.5都有需求,于是拿到一些机器上去试验,结果如下:
1、像xp这样无法装4.5只装了4.0的,显然启动不了主程序
2、像win7这样只装了4.0没有装4.5的,还是启动不了主程序
3、然后本人在装了4.0的win7上又装了个4.5.1,当然可以正常运行程序了
4、但是装完4.5.1之后本人发现原来的4.0已经没有了(控制面板上看不到之前有的4.0了)
5、于是本人怀疑安装4.5.1是把4.0给覆盖了
莫非4.5X系列对4.0是向下兼容的?本人晕了,貌似以前也见过控制面板里面同时出现了4.0和4.5
1、像xp这样无法装4.5只装了4.0的,显然启动不了主程序
2、像win7这样只装了4.0没有装4.5的,还是启动不了主程序
3、然后本人在装了4.0的win7上又装了个4.5.1,当然可以正常运行程序了
4、但是装完4.5.1之后本人发现原来的4.0已经没有了(控制面板上看不到之前有的4.0了)
5、于是本人怀疑安装4.5.1是把4.0给覆盖了
莫非4.5X系列对4.0是向下兼容的?本人晕了,貌似以前也见过控制面板里面同时出现了4.0和4.5
解决方案
30
4.5.1
红色是大版本
蓝色是小版本
一般来说大版本不变的话,其核心是相同的
而Frame版本变动最大的几个版本是
1.1~2.0,设计什么的大变,一般升级都会出现各种错误
2.0~3.5其实底层都是同一个版本,都是2.x版本
3.5~4.0底层有重写,但语法、用法什么的与前面的版本没啥区别,就算有,也是细小的区别
4.0~4.5底层是同一个版本,比较特殊的是4.5.1,它是换了编译器……
假如目前全部的Frame你都有装过的话,那你在IIS的程序池里面就会有四个选项,1.1版本,2.0版本,4.0版本,无托管
红色是大版本
蓝色是小版本
一般来说大版本不变的话,其核心是相同的
而Frame版本变动最大的几个版本是
1.1~2.0,设计什么的大变,一般升级都会出现各种错误
2.0~3.5其实底层都是同一个版本,都是2.x版本
3.5~4.0底层有重写,但语法、用法什么的与前面的版本没啥区别,就算有,也是细小的区别
4.0~4.5底层是同一个版本,比较特殊的是4.5.1,它是换了编译器……
假如目前全部的Frame你都有装过的话,那你在IIS的程序池里面就会有四个选项,1.1版本,2.0版本,4.0版本,无托管
15
应该是兼容的啊 4.5的版本高于4.0 理论上是兼容4.0的
15
要看你引用的dll是不是3.5特有的,毕竟核心库只有2.0和4.0两种
一般dll在c:\windows\assembly和c:\windows\Microsoft.NET\assembly里面,你可以确认下
10
。net framework 版本都是向下兼容的,这个没有疑问。
10
以本人的实际使用经验来看,是兼容的。一般4.0下开发的程序在4.5环境下是可以正常运行的。反过来不行。通常安装完4.5后,本人一般不再安装4.0,也安装不了,原因是会提示有更新版本,不用安装。
20
https://www.microsoft.com/zh-cn/download/details.aspx?id=30653
所以,4.5对于4.0是替代关系,不能并行存在。