在一个windows 服务项目A中,引用了另外一个项目B,可以使用自动完成,引用其他项目中的类,按理,可以自动提示了,应该就是没问题了,但编译时却提示“未能找到类型或命名空间名称”,反复删除引用,重新添加引用也没用。

经过反复检查,发现类库项目B中引用了system.web,如果去除这个引用,则项目A也可以编译了。

再查资料查到一篇说明:

http://stackoverflow.com/questions/3370474/system-web-reference-in-windows-service-in-net-4-0

里面提到了 vs2010的windows service项目目标框架默认采用 .Net 4.0 Client Profile,改为.Net FrameWork 4.0,问题解决。

总结如下,vs2010中部分项目的默认项目框架为.Net 4.0 Client Profile,会缺少很多东西。System.Web肯定不是.Net 4.0 Client Profile支持的。