Asp.net core ASPNET核心RC2之前的依赖性歧义

Asp.net core ASPNET核心RC2之前的依赖性歧义,asp.net-core,asp.net-core-mvc,dotnet-cli,Asp.net Core,Asp.net Core Mvc,Dotnet Cli,我正在使用: .NET Command Line Tools (1.0.0-rc2-002439) Product Information: Version: 1.0.0-rc2-002439 Commit Sha: ef0c3b2cee Runtime Environment: OS Name: Windows OS Version: 10.0.10586 OS Platform: Windows RID: win10-x64 并获得: 错误CS012

我正在使用:

.NET Command Line Tools (1.0.0-rc2-002439)

Product Information:
Version:     1.0.0-rc2-002439
Commit Sha:  ef0c3b2cee

Runtime Environment:
OS Name:     Windows
OS Version:  10.0.10586
OS Platform: Windows
RID:         win10-x64
并获得:

错误CS0121:以下方法或属性之间的调用不明确:“Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action)”和“Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.Configure”(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action)'

我怀疑“dotnet还原”中包含多个选项模型程序集(不同版本)

证据可能在这里:

具有不同参数名称的第二个建议:

Project.lock.json文件中很少有有趣的行(“Infrastructure”是一个引用的程序集):

而web应用程序使用Microsoft.Extensions.OptionsModel/1.0.0-rc2-15914

以下是基础结构组装的配置部分:

"Infrastructure/1.0.0": {
    "type": "project",
    "framework": ".NETFramework,Version=v4.6.1",
    "dependencies": {
      "Domain": "1.0.0",
      "Microsoft.Extensions.Caching.Abstractions": "1.0.0",
      "Microsoft.Extensions.OptionsModel": "1.0.0",
      "Newtonsoft.Json": "8.0.3",
      "WindowsAzure.Storage": "6.2.1"
    },
    "compile": {
      "net461/Infrastructure.dll": {}
    },
    "runtime": {
      "net461/Infrastructure.dll": {}
    }
  }
"dependencies": {
    "Domain": "1.0.0-*",
    "Microsoft.Extensions.Caching.Abstractions": "1.0.0-*",
    "Microsoft.Extensions.OptionsModel": "1.0.0-*",
    "Newtonsoft.Json": "8.0.3",
    "WindowsAzure.Storage": "6.2.1-*"
}
问题是:为什么在执行“dotnet还原”时选择不同的版本(1.0.0和1.0.0-rc2-15914)

更新:我尝试将Infrastructure project的project.json更改为“Microsoft.Extensions.OptionsModel”:“1.0.0-rc2-15914”,但由于屏幕截图中显示的模糊性,我仍然无法编译。是否有任何程序集缓存在我的计算机上?

解决方案是:


Microsoft.Extensions.Options而不是Microsoft.Extensions.OptionsModel包必须在引用的项目中使用。

project.json
中手动引用了
dnx451
项目中的
Entity Framework 7.0.0-rc2
之后,我目前正努力尝试在
dnx451
项目中引用
Entity Framework 7.0.0.0-rc2
在尚未解决的问题上,我一直坚持声称对Microsoft.Extensions.Options有依赖关系,这在两个Nuget频道(Nuget和MyGet)中都找不到。在依赖关系链中,它似乎声明了
Microsoft.Extensions.Options 1.0.0-rc3
,它与
Framework DNX,Version=v4.5.1
不兼容。您应该能够使用“dotnet build”进行编译,而不会出现任何问题。这是一个Visual Studio工具不兼容问题,我在VS2015中也有同样的警告。实际上,我从CLI命令行执行了所有操作,没有使用VS,它对我不起作用。感谢@ZygimantasBerziunas,我遇到了完全相同的问题。在这里发布了详细的答案: