2

私は使っている:

.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 restore」には複数の OptionsModel アセンブリ (異なるバージョン) が含まれていると思われます。

証拠はここにあるかもしれません:

ここに画像の説明を入力 別のパラメーター名を持つ 2 番目の提案:

ここに画像の説明を入力

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) が選択されるのはなぜですか?

更新: Infrastructure プロジェクトの project.json を "Microsoft.Extensions.OptionsModel": "1.0.0-rc2-15914" に変更しようとしましたが、スクリーンショットに表示されるあいまいさのためにまだコンパイルできません。コンピューターのどこかにアセンブリがキャッシュされていますか?

4

1 に答える 1

2

解決策は次のとおりです。

Microsoft.Extensions.OptionsModelパッケージの代わりに Microsoft.Extensions.Options を参照プロジェクトで使用する必要がありました。

于 2016-04-21T14:59:30.873 に答える