2015-10-25 8 views
6

Ich habe gerade ein neues Projekt in ASP 5 MVC 6 beta8 und eine kompatible Klassenbibliothek für Tests erstellt. Das Problem tritt in diesem neuen "Web Class Library" Projekt auf, das ich für Tests verwenden wollte. DieseNuget kann keine neuere Abhängigkeit finden

ist, was meine project.json wie folgt aussieht:

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

Beim Übersetzen bekomme ich folgende Fehlermeldung:

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 

Dies ist, was Referenzen mein Projekt wie folgt aussehen:

enter image description here

Ich denke, das Problem ist, dass AutoFixture.AutoMoq erfordert Moq in Version "4.1.1308.2120". Siehe die 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": {} 
    } 
    }, 

jedoch die installierte Version Moq höher "4.2.1510.2205", so nach der Fehlermeldung, sollte es in Ordnung sein, aber es ist nicht.

Es funktioniert gut, wenn ich Moq auf die erforderliche Version herunterstufen, aber ich würde lieber die neueste Version verwenden. Ich habe den neuesten nugget-Paketmanager installiert, VS und OS neu gestartet, aber keiner half.

Was kann ich dagegen tun?

EDIT

Ich habe auch eine normale Klassenbibliothek, installiert die Abhängigkeiten oben mit und habe es ausprobiert. Normal Class Library-Projekt gut gebaut.

+0

Was passiert, wenn Sie versuchen, eine Plain-Vanilla-Konsolenanwendung oder Klassenbibliothek mit diesen Abhängigkeiten zu erstellen? Ich habe es gerade versucht, und es ist gut kompiliert, so meine Hypothese ist, dass es mit ASP 5 MVC 6, die schließlich noch in der Beta ist. Wenn ja, könnte es sich um einen Fehler handeln, den Sie melden sollten. –

+0

@MarkSeemann Ich habe es versucht, und es hat gut gebaut. Ich werde es dem ASP5-Team melden und sehen, was sie sagen. – gisek

+0

Ich stieß auf das gleiche Problem. Haben Sie ein Problem auf GitHub erstellt? Ist das Problem in RC1 behoben? – Asik

Antwort

2

Update: Dies kann jetzt durch ein Upgrade auf AutoFixture.AutoMoq 3.41.0 oder höher behoben werden.

Ursprüngliche Antwort:

Im Ziel Abschnitt project.lock.json kapitalisieren "moq", so dass das AutoMoq Element wie folgt aussieht:

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

Leider werden Sie dies tun müssen, jedes Mal erneut, wenn die Sperrdatei neu generiert wird.

0

Sie können nicht zwei verschiedene Versionen im selben Projekt haben. Sie können ein * verwenden, um Up- oder Downgrade zuzulassen. Siehe dieses article Dependency-Resolution

+0

Es heißt nicht, dass Sie nicht zwei verschiedene Versionen haben können. "Bei der Entscheidung zwischen mehreren Cousin-Abhängigkeiten verwendet der Resolver die niedrigste Version, die allen Versionsanforderungen entspricht." – SoftwareCarpenter

+0

Sie benötigen eine genaue Version. Um eine niedrigere Version zuzulassen, müssen Sie etwas wie "Moq" angeben: "4.2. *" –

+0

Bases auf Dokument, auf das Sie als Antwort verlinken, sagt nichts darüber aus, zwei verschiedene Versionen nicht zuzulassen. – SoftwareCarpenter