同一个库之间的调用不明确?

Ambiguous Call Between Same Library?

我正在尝试将我的 ASP.NET 5 项目从 beta7 升级到 beta8。我得到了运行时并切换了我 project.json 中的各种包。几乎所有的东西都在编译,除了我遇到了一些我无法解决的错误。

特别是,这是让我难过并阻止我前进的那个:

DNX,Version=v4.5.1 error CS0121: The call is ambiguous between the following methods or properties: 
'Microsoft.Data.Entity.SqlServerDbContextOptionsExtensions.UseSqlServer(Microsoft.Data.Entity.DbContextOptionsBuilder, string)' and 
'Microsoft.Data.Entity.SqlServerDbContextOptionsExtensions.UseSqlServer(Microsoft.Data.Entity.DbContextOptionsBuilder, string)'

在我的 Startup.cs

中的这一行代码
services.AddEntityFramework()
        .AddSqlServer()
        .AddDbContext<MyContext>(options =>
                     options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));

我知道过去,这通常出现在我的 GAC 中另一个版本的库的位置。但是,我认为 OSX 上的情况并非如此。我确实检查了我的 ~/.dnx/packages/ 文件夹,看看是否有什么东西跳到我身上,但也没有。

这是我的project.json供参考(部分删减):

{
  "webroot": "wwwroot",
  "version": "1.0.0",

  "dependencies": {
    "EntityFramework.Commands": "7.0.0-beta8",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-beta8",
    "HtmlSanitizer": "2.0.5623.30465",
    "ImageProcessor": "2.3.0.0",
    "Microsoft.AspNet.Antiforgery": "1.0.0-beta8",
    "Microsoft.AspNet.Authorization": "1.0.0-beta8",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta8",
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta8",
    "Microsoft.AspNet.Mvc": "6.0.0-beta8",
    "Microsoft.AspNet.Mvc.DataAnnotations": "6.0.0-beta8",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta8",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta8",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta8",
    "Microsoft.Dnx.Runtime": "1.0.0-beta8",
    "Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-beta8",
    "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-beta8",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-beta8",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-beta8",
    "Microsoft.Extensions.Logging.Console": "1.0.0-beta8",
    "System.Net.Http": "4.0.1-beta-23225"
  },

  "commands": {
    "ef": "EntityFramework.Commands",
    "kestrel": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5000 --ASPNET_ENV Development"
  },

    "frameworks": {
        "dnx451": {
            "frameworkAssemblies": {
                "System.Drawing": "4.0.0.0",
                "System.Runtime.Serialization": "4.0.0.0"
            }
         }
    },
    TRIMMED HERE
}

更新 我在我的 dnu build 中看到一组警告,可能表明可能存在问题。

/Users/jasoncavett/Projects/web-cemeteries/obituaries/project.json(7,43): warning NU1007: Dependency specified was EntityFramework.MicrosoftSqlServer >= 7.0.0-beta8 but ended up with EntityFramework.MicrosoftSqlServer 7.0.0-rc1-15945. /Users/jasoncavett/Projects/web-cemeteries/obituaries/project.json(21,48): warning NU1007: Dependency specified was Microsoft.Extensions.CodeGenerators.Mvc >= 1.0.0-beta8 but ended up with Microsoft.Extensions.CodeGenerators.Mvc 1.0.0-rc1-15824. /Users/jasoncavett/Projects/web-cemeteries/obituaries/project.json(25,45): warning NU1007: Dependency specified was Microsoft.Extensions.Logging.Console >= 1.0.0-beta8 but ended up with Microsoft.Extensions.Logging.Console 1.0.0-rc1-15673.

检查你的 nuget feed 是否来自发布而不是开发分支(很可能是你的问题) 您可能不需要此提要

https://www.myget.org/F/aspnetcidev/api/v3/index.json

但我想你错过了这个提要

https://www.myget.org/F/aspnetrelease/api/v3/index.json

检查您的 global.json 是否为 beta8

"sdk": {
  "version": "1.0.0-beta8"
 }

如果您在使用 dnu 还原之前将活动 dnx 设置为 运行 beta8,请检查您的 dnvm。

C:\git\DBC>dnvm 列表

Active Version         Runtime Architecture OperatingSystem Alias
------ -------         ------- ------------ --------------- -----
   1.0.0-beta4     clr     x86          win
   1.0.0-beta7     clr     x64          win
   1.0.0-beta7     clr     x86          win             b7
   1.0.0-beta7     coreclr x64          win
   1.0.0-beta7     coreclr x86          win
   1.0.0-beta8     clr     x64          win
*  1.0.0-beta8     clr     x86          win             aa, b8
   1.0.0-beta8     coreclr x64          win
   1.0.0-beta8     coreclr x86          win
   1.0.0-rc1-15838 clr     x86          win             rc1a

如果您仍有问题,请检查您的引用是否无效 project.json。