.Net 4.0 System.Web.Security.MembershipProvider含糊不清的参考?

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

该项目引用了库System.Web,类文件(inheritance自MembershipProvider)包含一个Using for System.Web.Security。 启用ReSharper后,IntelliSense会指出使用哪个成员资格提供程序可以选择两个同名的库(System.Web.Security)。

什么可能导致这种模棱两可的参考? 如何确定引用哪两个库? 没有任何明显的表明重复的参考。 然后,一旦你看到它,显而易见的是显而易见的。

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

我刚为Web应用程序创建自定义成员资格提供程序时遇到了同样的问题。 您需要删除对System.Web的引用并添加以下引用。 – System.Web.ApplicationServices – System.Configuration