2010-09-14 70 views
15

我最近将我的BlogEngine.Net安装升级到1.6和.Net 4.0,但是,当我执行升级时,我没有构建BlogEngine.Core。但是,当我尝试构建BlogEngine.Core项目时,编译失败,因为它无法加载(System.Web.Security。)MembershipProvider的符号。我相信这是一个.Net/C#/用户问题,而不是BlogEngine问题。.Net 4.0 System.Web.Security.MembershipProvider模糊引用?

该项目引用了库System.Web,并且该类文件(从MembershipProvider继承)包含一个Using for System.Web.Security。启用了ReSharper后,IntelliSense表明混淆了使用哪个成员资格提供程序,以选择具有相同名称的两个库(System.Web.Security)。

什么可能导致这种模棱两可的参考?我如何确定哪个库被引用?没有明显的表示重复的参考。再次,一旦你看到它,这个显而易见的事情就显而易见了。

回答

37

问题解决了。 System.Web.Security命名空间是System.Web的成员,但它也是System.Web.ApplicationServices的成员。该项目引用了System.Web,并使用了一个引用System.Web.Security的语句,因此IntelliSense在指定类时不会抛出标志。但是,该项目缺少对System.Web.ApplicationServices的引用。该项目有一个对该类的引用,但无法加载该类,因为包含程序集(... ApplicationServices)缺失。

+0

谢谢!这是推动我发疯... – 2011-01-19 18:59:45

+0

谢谢...有同样的问题... – Tracker1 2012-06-11 18:31:10

+3

作为一个补充说明,我不得不删除引用System.Web程序。添加System.Web.ApplicationServices,然后重新添加System.Web。 – 2012-09-12 20:30:06

3

创建我的web应用程序的自定义成员提供程序,当我刚刚处理了同样的问题。您需要删除对System.Web的引用并添加以下参考。 - System.Web.ApplicationServices - System.Configuration