首页 新闻 会员 周边

vs2010中打开一个2.0的项目,当中引用了3.5的类库,不能编译通过,能解决吗?

0
悬赏园豆:15 [已解决问题] 解决于 2010-12-06 10:57

vs2010中打开一个2.0的项目,当中引用了3.5的类库,不能编译通过;但是我在vs2008中可以,有什么解决办法吗?

问题补充: 3.5的类库是我自己写的 错误是显示引用不到...
姚一^o^的主页 姚一^o^ | 菜鸟二级 | 园豆:410
提问于:2010-12-03 16:12
< >
分享
最佳答案
0

把需要用到的。net3.5中的类库的dll,拷贝到你的项目中,再重新添加引用,试试行不。

.net2.0中把linq的dll拷贝到项目中是可以的。

收获园豆:14
yearN | 小虾三级 |园豆:551 | 2010-12-05 19:47
我试过了,可行 谢谢你 你的答案是改动最小的
姚一^o^ | 园豆:410 (菜鸟二级) | 2010-12-06 10:57
其他回答(2)
0

会有这种问题?你引用一下就行了吧?

顾晓北 | 园豆:10844 (专家六级) | 2010-12-03 16:27
...
支持(0) 反对(0) 姚一^o^ | 园豆:410 (菜鸟二级) | 2010-12-03 16:31
0

应该引用不到的。看来你只有把那个项目直接设置成3.5的。否则报错的其实应该是你的类库根本运行不起来。你项目中引用你类库的地方必然让程序进入你的类库,然后你的类库又导向了3.5的.net类库。所以后面肯定会报错了。这么说起来你现在的解决途径只有将你的版本设置为3.5的,否则真的没办法。至于说在2008下面没出问题,这个其实我也蛋疼。打个比方我A项目引用B项目,然后主项目引用A项目,当B项目在转移的时候弄漏了,问题是2008它竟然不报错,还让我好好地编译调试。但是那一天我真的加入数据了开始系统调试运行了,就开始抛错了。所以你说的那个在2008下面能编译通过也是正常的,但你即使在零八下面如果你实际运行数据的话同样直接抛错的。

微软的.net在编译的时候它会假设已经编译好的东西是没有问题的。在编译的时候并没有真正进入编译好的dll文件中去。而在运行的时候是要真正进去的。所以编译更在乎的是语法问题。而运行的时候在乎的是运行时的问题了。所以你的解决方案只有把项目部署成3.5的,别无他法。

收获园豆:1
BLoodMaster | 园豆:135 (初学一级) | 2010-12-03 18:07
谢谢你的帮助,不过你的办法,在公司只允许使用2.0的情况下,无法成功
支持(0) 反对(0) 姚一^o^ | 园豆:410 (菜鸟二级) | 2010-12-06 10:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册