C#未能找到类型或命名空间名称xxxxxx的可能原因

常见原因

原因:使用的.NET版本不一样
今天又被这问题撞上了,结果神奇般的解决了
谷歌了很久都没有找到真正有用的解决方案,所以在这儿写下,让更多的人看到
最根本的原因其实就是引用的问题,引用错了,然后VS在这上面提示又不够智能,所以大家被坑一次又一次

其他原因

第一种

这种可能性很好排查,A项目所使用的.net版本为3.5,B项目为4.0,那么A引用B是肯定要出事的
而错误提示就是那坑爹的未能找到类型或命名空间名称

第二种

也就是今天遇到的,举个例子
假设各个项目的.net版本完全一致,排除掉第一种可能性
然后,A项目引用了d.dll,d.dll的.net版本为2.0,C项目也引用了d.dll,版本为3.0
这时A项目引用C项目就是要出事的,然后就是那坑爹的提示,A和C分别引用的d.dll所使用的.net版本不一样也会出事
我就是这种情况被坑。排除起来比较麻烦,需要把引用的相同的dll一个一个去掉,还要注释掉相关代码,然后才能找出来。
重新引用,一切OK!


原文地址:https://www.cnblogs.com/masonblog/p/12740873.html