asp.net-core - RC2 之前的 ASPNET Core 依赖性模糊性

标签 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

并得到:

error CS0121: The call is ambiguous between the following methods or properties: 'Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Action)' and 'Microsoft.Extensions.DependencyInjection.OptionsServiceCollectionExtensions.Configure(Microsoft.Extensions.DependencyInjection.IServiceCollection, System.Action)'

我怀疑“dotnet Restore”中包含多个OptionsModel程序集(不同版本)。

证据可能在这里:

enter image description here 第二个建议具有不同的参数名称:

enter image description here

Project.lock.json 文件有几行有趣的行(“基础设施”是引用的程序集):

"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": {}
    }
  }

当 Web 应用程序使用 Microsoft.Extensions.OptionsModel/1.0.0-rc2-15914

这是基础设施组件的配置部分:

"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 Restore”时选择不同的版本(1.0.0 和 1.0.0-rc2-15914)?

更新:我尝试将基础设施项目的project.json更改为“Microsoft.Extensions.OptionsModel”:“1.0.0-rc2-15914”,但由于屏幕截图中显示的歧义,我仍然无法编译。我的计算机上是否缓存了任何程序集?

最佳答案

解决办法是:

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

关于asp.net-core - RC2 之前的 ASPNET Core 依赖性模糊性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36769984/

相关文章:

.net - iis 中的取消标记未触发

使用 Microsoft.Extensions.Logging 从静态成员进行日志记录

c# - 如何使用 IdentityServer4 将 AspNetIdentity 添加到我的 API

asp.net-core-mvc - ASP.NET Core 模型绑定(bind)未知长度的集合

dnx - 如何确定 dnu/dotnet 发布的输出文件夹

c# - ASP.NET Core WebAPI 最多可以同时处理多少个请求?

asp.net-mvc - 在 ASP.NET Core 1.0 中发布后修改 appsettings.Production.json 文件?

c# - 如何在 ASP.Net Core MVC 模型中使用 C# 解析来自 REST API 的 json 数据并将其显示在 HTML 页面上

visual-studio-2017 - Visual Studio 2017 和 dotnet run 命令行失败

asp.net - DotNet Pack 什么都不做