未能找到类型集或命名空间名称 "xxxxxx" (是否缺少using 指令或引用?)

“未能找到类型或命名空间名称XXXX”,以往遇到这种情况第一时间想到就是没有引用需要的dll。
但今天我反复检查了好几次,还是没有解决问题。我注意到除了错误信息,还有几个警告信息“未能解析引用的程序集XXXXXXVersion=1.0.0.0, Culture=neutral, processorArchitecture=MSIL”,因为它对不在当前目标框架“.NETFramework,Version=v4.0,Profile=Client”中的“System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”具有依赖关系。请删除对不在目标框架中的程序集的引用,或考虑重新确定项目的目标。

未能找到类型集或命名空间名称 "xxxxxx" (是否缺少using 指令或引用?)

解决方法:
控制台应用程序-->属性-->目标框架-->选择“.NET Framwork4”
默认设置为.NET Framwork4 Client Profile  改为 .NET Framwork4 即可。
未能找到类型集或命名空间名称 "xxxxxx" (是否缺少using 指令或引用?)

加了Client Profile的.NET Framework是不加子集的或者说是精简版(Compact Version)。
为什么要引入这个简化版本呢?
1. 减少.NET Framework以及包还.NET Framework的应用程序的部署时间;
2. 减少.NET Framework部署的失败;
3. 减少.NET Framework在ISV软件的所占大小,从而给其软件更多的空间;
4. 减少安装了.NET Framework Client Profile的系统受攻击的“界面”,因为Client Profille中部包括ASP.NET和一些服务器所要的组件