关于.net framework2.0、3.5和4.0

abcazpq 2010-11-02 05:09:41
问题是这样,我们公司目前在vs2005也就是.net framework2.0,由于现在微软已经推出vs2008和vs2010,所以目前想升级到高级版本,但由于产品已经成熟,不宜大动,所以我只是将开发环境升级到vs2010,但编译输出我选择的还是.net framework2.0,所以原有模块都没什么问题,但经过进一步测试,比如我想使用vs2005里面没有新特性wpf,并且嵌套在我们已有的2.0框架中调用,就出现问题,2.0的程序无法调用4.0的dll,这个请问有什么解决方案吗?

再进一步测试,我用vs2008编了一个dll,再用2.0去调用,结果发现可以正常调用,这是为什么?为什么可以调用3.5却不可以调用4.0?有什么解决方案 多谢
...全文
1012 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zixubingfeng 2011-01-06
  • 打赏
  • 举报
回复
不能引用,因为2.0,3.5都是CLR2.0生成的,4.0是CLR4.0生成的
ziyan688999 2010-11-25
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 kakajay008 的回复:]
引用 5 楼 zhoufoxcn 的回复:

引用 4 楼 abcazpq 的回复:
由于原有产品使用了第三方的控件,不方便直接升级到4.0,所以我想能不能原有的还是2.0,但新开发的使用4.0,使用2.0的程序来调用,但不知道为什么无法调用怎么解决?

低版本的是不能调用高版本的,因为2.0/3.0/3.5的程序之间只不过增加了一些类库而已,编译生成的中间代码MSIL是没有变化的,而4……
[/Quote]

+2
风尘浪子 2010-11-03
  • 打赏
  • 举报
回复
用VS2005一样可以调用VS2010开发的项目,只需要你在新建项目时选择“调用NET Framework2.0",那就可以了。
记住,Visual Studio只是开发工具,而Framework才是核心。
gaocheng1988 2010-11-03
  • 打赏
  • 举报
回复
5楼说的是,4.0相对于2.0/3.0/3.5来说确实是一个新的版本增加了很多的东西。一般情况下,高版本调用低版本没问题,但低版本是无法调用高版本的!因为很多类库低版本是没有的!
lyy_0814 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhoufoxcn 的回复:]
引用 4 楼 abcazpq 的回复:
由于原有产品使用了第三方的控件,不方便直接升级到4.0,所以我想能不能原有的还是2.0,但新开发的使用4.0,使用2.0的程序来调用,但不知道为什么无法调用怎么解决?

低版本的是不能调用高版本的,因为2.0/3.0/3.5的程序之间只不过增加了一些类库而已,编译生成的中间代码MSIL是没有变化的,而4.0在MSIL层增加了一些新的东西,所以2.0的可……
[/Quote]

不是很明白,不过感觉五楼说的有道理
jiewei915 2010-11-03
  • 打赏
  • 举报
回复
由于原有产品使用了第三方的控件,不方便直接升级到4.0


第三方控件难道不能在4.0下运行么???
向下兼容的吧?
周公 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 abcazpq 的回复:]
由于原有产品使用了第三方的控件,不方便直接升级到4.0,所以我想能不能原有的还是2.0,但新开发的使用4.0,使用2.0的程序来调用,但不知道为什么无法调用怎么解决?
[/Quote]
低版本的是不能调用高版本的,因为2.0/3.0/3.5的程序之间只不过增加了一些类库而已,编译生成的中间代码MSIL是没有变化的,而4.0在MSIL层增加了一些新的东西,所以2.0的可以调用3.0/3.5的(如果它们没有使用Linq之类的),但是不能调用4.0的。
abcazpq 2010-11-03
  • 打赏
  • 举报
回复
由于原有产品使用了第三方的控件,不方便直接升级到4.0,所以我想能不能原有的还是2.0,但新开发的使用4.0,使用2.0的程序来调用,但不知道为什么无法调用怎么解决?
kakajay008 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zhoufoxcn 的回复:]

引用 4 楼 abcazpq 的回复:
由于原有产品使用了第三方的控件,不方便直接升级到4.0,所以我想能不能原有的还是2.0,但新开发的使用4.0,使用2.0的程序来调用,但不知道为什么无法调用怎么解决?

低版本的是不能调用高版本的,因为2.0/3.0/3.5的程序之间只不过增加了一些类库而已,编译生成的中间代码MSIL是没有变化的,而4.0在MSIL层增加了一些新的东西,所以2.0的……
[/Quote]
+1
hch126163 2010-11-02
  • 打赏
  • 举报
回复
直接升级成4.0 不就可以了!
bryht 2010-11-02
  • 打赏
  • 举报
回复
你用4.0编译的现在的程序会有问题吗?绝大部分函数都是向下兼容的吧
bryht 2010-11-02
  • 打赏
  • 举报
回复
3.5是个过渡

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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