2015-10-25 39 views
6

我剛剛在ASP 5 MVC 6 beta8和兼容的類庫中創建了一個新項目進行測試。在我打算用於測試的這個新的「Web Class Library」項目中出現問題。Nuget找不到更新的依賴關係

這是我project.json是什麼樣子:

{ 
    "version": "1.0.0-*", 
    "description": "ClassLibrary1 Class Library", 
    "authors": [ "Me" ], 
    "tags": [ "" ], 
    "projectUrl": "", 
    "licenseUrl": "", 
    "frameworks": { 
    "dnx451": { } 
    }, 
    "dependencies": { 
    "AutoFixture": "3.36.9", 
    "AutoFixture.AutoMoq": "3.36.9", 
    "Moq": "4.2.1510.2205" 
    } 
} 

在編譯過程中,我得到以下錯誤:

Severity Code Description Project File Line Source 
Error NU1001 The dependency moq >= 4.1.1308.2120 could not be resolved. ClassLibrary1 Path\To\My\Solution\ClassLibrary1\project.json 1 Build 

這是我的項目的引用如下所示:

enter image description here

我猜問題是AutoFixture.AutoMoq需要Moq版本"4.1.1308.2120"。見project.lock.json:

"AutoFixture.AutoMoq/3.36.9": { 
    "type": "package", 
    "dependencies": { 
     "autofixture": "3.36.9", 
     "moq": "4.1.1308.2120" 
    }, 
    "compile": { 
     "lib/net40/Ploeh.AutoFixture.AutoMoq.dll": {} 
    }, 
    "runtime": { 
     "lib/net40/Ploeh.AutoFixture.AutoMoq.dll": {} 
    } 
    }, 

然而,安裝Moq版本較高"4.2.1510.2205",所以要根據錯誤信息,它應該是罰款,但事實並非如此。

它工作正常,但如果我將Moq降級到所需版本,但我寧願使用最新版本。我已經安裝了最新的nuget軟件包管理器,重新啓動了VS和OS,但都沒有幫助。

我該怎麼辦呢?

編輯

我還創建了一個正常的類庫,上面安裝有依賴關係,並給它一個嘗試。正常的類庫項目建好。

+0

如果您嘗試使用這些依賴關係創建普通的vanilla控制檯應用程序或類庫,會發生什麼情況?我現在就試過了,編譯好了,所以我的假設是它與ASP 5 MVC 6有關,畢竟它仍處於測試階段。如果是這樣,那可能是你應該報告的錯誤。 –

+0

@MarkSeemann我試了一下,它建成的很好。我會把它報告給ASP5團隊,看看他們說了些什麼。 – gisek

+0

我遇到了同樣的問題。你在github上創建了一個問題嗎?問題在rc1中解決了嗎? – Asik

回答

2

更新:現在可以通過升級到AutoFixture.AutoMoq 3.41.0或更高版本來解決此問題。

原來的答案:

在project.lock.json的目標部分利用「起訂量」,讓AutoMoq元素看起來是這樣的:

"AutoFixture.AutoMoq/3.38.0": { 
    "type": "package", 
    "dependencies": { 
     "autofixture": "3.38.0", 
     "Moq": "4.1.1308.2120" 
    }, 

不幸的是,你將不得不這樣做每次鎖文件重新生成時也是如此。

0

在同一個項目中不能有兩個不同的版本。您可以使用*來允許升級或降級。看到這個artical Dependency-Resolution

+0

它並不是說你不能有兩個不同的版本。 '在決定多個表親依賴關係時,解析器使用滿足所有版本要求的最低版本。' – SoftwareCarpenter

+0

您需要準確的版本。要允許較低的版本,您必須指定someyhing,如「Moq」:「4.2。*」 –

+0

根據您鏈接到的文檔回答它沒有提供關於不允許兩個不同版本的內容。 – SoftwareCarpenter