【问题标题】:Queryable attribute ambiguous Reference Error可查询属性不明确引用错误
【发布时间】:2015-05-11 19:16:21
【问题描述】:

当我将 [System.Web.Http.Queryable] 属性添加到 api 项目时,我收到不明确的引用错误。

The type 'System.Web.Http.QueryableAttribute' exists in both 'c:\..\packages\Microsoft.AspNet.WebApi.OData.4.0.0\lib\net40\System.Web.Http.OData.dll' and 'c:\Program Files\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Web.Http.dll'

但在我的情况下,我需要两个 dll,我该如何解决这个问题?

【问题讨论】:

    标签: c# linq


    【解决方案1】:

    安装最新的 WebApi,它会删除造成冲突的旧 WebApi

    安装包 Microsoft.AspNet.WebApi.OData -Version 5.3.1

    【讨论】:

    【解决方案2】:

    当您在 .NET 缓存中获取旧程序集时,有时会发生这种情况。 尝试清除这些文件夹的内容:

    C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET 文件 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\临时 ASP.NET 文件 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET 文件 C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files

    【讨论】:

    • 您的项目中是否引用了错误中提到的两个库?如果是这样,您应该只有一个。
    • 是的,但我需要两个 dll 中的类和方法
    • 此处发布了类似问题:stackoverflow.com/questions/21527839... 您可以尝试创建一个仅引用其中一个库的不同项目。然后,在原始项目中,您可以引用第二个库和您的“包装”项目。
    【解决方案3】:

    你可以使用如下...

    using ODATA = System.Web.Http.OData;
    using HTTP = System.Web.Http;
    

    然后您可以相应地引用您的类型...

    【讨论】:

    • 引用 HTTP.Queryable 时有 System.Web.Http.Queryable 的两个引用
    【解决方案4】:

    我刚刚卸载并安装了 mvc4,现在它工作正常。我认为问题是由于以下 dll 的版本控制

    c:\Program Files\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Web.Http.dll
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      • 2015-01-07
      • 2018-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多