在同一个解决方案(.sln)下的A工程(.csproj)引用B工程的.dll后,在代码中使用using是无法找到对应命名空间。 如图1所示,MCC.Client引用了MCC.Business工程生成的.dll,但在图2中,报了“Error 2 The type or namespace name 'UserProfile' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\a531032\My Documents\visual studio 2010\Projects\MCC\MCC.Client\SysUtility\AppContext.cs 15 24 MCC.Client”的错误。
图1 解决方案结构
图2 编译错误 由于之前修改过工程名称,一直以为是这个原因造成的引用失败,便沿着一下方向查了一遍错误,最终找到了原因。
图3 MCC.Business的Properties/Assembly.cs文件
图4 MCC.Business的属性页
图5 MCC.Client的.csproj文件
图6 MCC.Client的属性页 问题找到了 我的问题出在了创建MCC.Client工程(一个WinForm工程)时,VS 2010默认选择了“.NET Framework 4 Client Profile”,以便于在客户端部署时的便捷。但由于MCC.DataAccess工程中引用了System.Data.OracleClient(其并非包含在.NET Framework 4 Client Profile库中,而在.NET Framework 4 Full库中)。之后,MCC.Business引用了MCC.DataAccess生成的.dll,当MCC.Client去引用MCC.Business生成的.dll时,发现该.dll又引用了.NET Framework 4 Client Profile不包含的内容,所以在编译时MCC.Client对MCC.Business的.dll给出编译错误。 ======================== .NET Framework 4 Client Profile 相对于 .NET Framework 4 的区别
网址:http://www.cnblogs.com/lichence/archive/2012/02/09/2343966.html |
.NET添加引用后,但在代码中使用using时却找不到命名空间?
最新推荐文章于 2021-05-02 15:12:52 发布