【问题标题】:.Net 4.0 System.Web.Security.MembershipProvider ambiguous reference?.Net 4.0 System.Web.Security.MembershipProvider 不明确的参考?
【发布时间】:2011-04-12 08:46:30
【问题描述】:

我最近将我的 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) 时指出使用哪个成员资格提供程序的混淆。

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

【问题讨论】:

    标签: c# .net reference blogengine.net ambiguous


    【解决方案1】:

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

    【讨论】:

    • 作为补充说明,我必须删除对 System.Web 的引用。添加 System.Web.ApplicationServices,然后重新添加 System.Web。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 1970-01-01
      • 2017-06-13
      • 2015-10-20
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      相关资源
      最近更新 更多