15

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

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

是什么导致了这种模棱两可的参考?如何确定引用了哪两个库?没有明显的迹象表明重复引用。再说一次,一旦你看到它,显而易见的东西就真的很明显了。

4

2 回答 2

37

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

于 2010-09-15T00:35:00.353 回答
3

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

于 2012-03-28T05:43:36.017 回答