.net项目之间的跨版本引用研究实验
开发工具VS2012
在解决方案之下建立五个项目,分别使用不同的.net版本,用以做引用测试,(注意,两个项目之间无法进行互相引用,只能单向引用):
使用.net2项目引用其他项目的结果:
可以看到,以.net2版本的项目对其他高版本的项目作引用,全都会报出引用异常的标志,那么在源码编辑中又是如何呢,我们接着看,有意思的事情来了:
如图所示,源码编辑中居然不报任何错误,并且智能提示器也能点出来,但如果你高兴的以为虽然引用报了异常,但还是能够正常使用的,那就大错特错了,我们再接着进行编译:
编译结果如图,有意思不,Net4和Net4.5报了未引用错误并且编译失败。那么我们再来作下处理,把报错的关于Net4和Net4.5的源码注释掉,再度进行编译看看:
如上,编译通过,并且点击测试按钮之后Net3和Net3.5的窗体都正常弹出没有问题,由此得出结论:.net2.0项目可以引用.net3和.net3.5的项目,虽然会报引用异常,但是不影响使用。我们接下来再看其他的项目引用实验:
.Net3.0项目:
如上,对于.net2.0的引用不再报异常
如上,编译时net2和net3.5通过,net4和net4.5报错。
.Net3.5项目:
如上,net2和net3引用正常,并且编译通过,编译报错的是net4和net4.5
.Net4.0项目:
如上,只有对于net4.5的引用报异常,并且编译时也只是net4.5的代码报错。
.Net4.5项目:
如上,引用不再报任何异常,并且编译也没有任何错误,点击测试按钮,net4.5以下的所以引用都能运行出来。
总结:
高版本的项目引用低版本的项目没有问题,.Net4以下项目互相引用没有问题。
另注:因为项目简单,不排除有复杂引用的情况与以上情况相违背,仅作参考