同一个库之间的调用不明确?
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。
我正在尝试将我的 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。