.net项目之间的跨版本引用研究实验

开发工具VS2012

在解决方案之下建立五个项目,分别使用不同的.net版本,用以做引用测试,(注意,两个项目之间无法进行互相引用,只能单向引用):

.net项目之间的跨版本引用研究实验

使用.net2项目引用其他项目的结果:

.net项目之间的跨版本引用研究实验

可以看到,以.net2版本的项目对其他高版本的项目作引用,全都会报出引用异常的标志,那么在源码编辑中又是如何呢,我们接着看,有意思的事情来了:

.net项目之间的跨版本引用研究实验

如图所示,源码编辑中居然不报任何错误,并且智能提示器也能点出来,但如果你高兴的以为虽然引用报了异常,但还是能够正常使用的,那就大错特错了,我们再接着进行编译:

.net项目之间的跨版本引用研究实验

编译结果如图,有意思不,Net4和Net4.5报了未引用错误并且编译失败。那么我们再来作下处理,把报错的关于Net4和Net4.5的源码注释掉,再度进行编译看看:

.net项目之间的跨版本引用研究实验

如上,编译通过,并且点击测试按钮之后Net3和Net3.5的窗体都正常弹出没有问题,由此得出结论:.net2.0项目可以引用.net3和.net3.5的项目,虽然会报引用异常,但是不影响使用。我们接下来再看其他的项目引用实验:

.Net3.0项目:

.net项目之间的跨版本引用研究实验

如上,对于.net2.0的引用不再报异常

.net项目之间的跨版本引用研究实验

如上,编译时net2和net3.5通过,net4和net4.5报错。

.Net3.5项目:

.net项目之间的跨版本引用研究实验.net项目之间的跨版本引用研究实验

如上,net2和net3引用正常,并且编译通过,编译报错的是net4和net4.5

.Net4.0项目:

.net项目之间的跨版本引用研究实验.net项目之间的跨版本引用研究实验

如上,只有对于net4.5的引用报异常,并且编译时也只是net4.5的代码报错。

.Net4.5项目:

.net项目之间的跨版本引用研究实验

.net项目之间的跨版本引用研究实验

如上,引用不再报任何异常,并且编译也没有任何错误,点击测试按钮,net4.5以下的所以引用都能运行出来。

总结:

高版本的项目引用低版本的项目没有问题,.Net4以下项目互相引用没有问题。

另注:因为项目简单,不排除有复杂引用的情况与以上情况相违背,仅作参考