2016-04-21 73 views
2

我使用:ASPNET核心RC2預依賴歧義

.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恢復」中包含多個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應用程序使用M icrosoft.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-*" 
} 

的問題是:爲什麼不同的版本(1.0.0和1.0.0 -rc2-15914)在執行「dotnet恢復」時被選中?

更新:我試着將基礎設施項目的project.json更改爲「Microsoft.Extensions.OptionsModel」:「1.0.0-rc2-15914」,但我仍然無法編譯,因爲屏幕截圖中顯示的模糊不清。是否有任何程序集緩存在我的計算機上的某處?

回答

2

解決的辦法是:

Microsoft.Extensions.Options代替Microsoft.Extensions.OptionsModel包必須在引用的項目中使用。

+0

我目前正努力嘗試在'dnx451'項目中引用'Entity Framework 7.0.0-rc2',在'project.json'中爲所有未解決的事物提供手動引用之後,我堅持使用聲明的依賴項到'Microsoft.Extensions.Options',這在兩個Nuget頻道(NuGet和MyGet)中都找不到。在依賴關係鏈中,似乎要求聲明'Microsoft.Extensions.Options 1.0.0-rc3',它與'Framework DNX版本= v4.5.1'不兼容' – kall2sollies

+0

您應該可以在沒有任何問題的情況下使用「dotnet建立」。這是Visual Studio工具不兼容的問題,我在VS2015中也有相同的警告。 – Zygimantas

+0

其實我從CLI命令行做了一切,沒有使用VS,它沒有爲我工作。 – kall2sollies