2015-10-25 23 views
6

Ho appena creato un nuovo progetto in ASP 5 MVC 6 beta8 e una libreria di classi compatibili per i test. Il problema si verifica in questo nuovo progetto "Libreria di classi Web" che intendevo utilizzare per i test.Nuget non trova nuove dipendenze

Questo è quello che sembra il mio project.json come:

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

Durante la compilazione ottengo il seguente errore:

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 

Questo è ciò che i riferimenti del mio progetto assomigliano:

enter image description here

Immagino che il problema sia che AutoFixture.AutoMoq richiede Moq nella versione "4.1.1308.2120". Vedere la 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": {} 
    } 
    }, 

Tuttavia, la versione installata Moq è superiore "4.2.1510.2205", quindi in base al messaggio di errore, dovrebbe andare bene, ma non lo è.

Funziona bene se si esegue il downgrade della versione Moq alla versione richiesta, ma preferirei utilizzare la versione più recente. Ho installato l'ultimo gestore di pacchetti nuget, riavviato VS e OS ma nessuno dei due ha aiutato.

Cosa posso fare a riguardo?

EDIT

ho anche creato una normale libreria di classi, installate le dipendenze di cui sopra con e dato una prova. Progetto di libreria di classi normali ben realizzato.

+0

Cosa succede se si tenta di creare una semplice applicazione per console di vaniglia o una libreria di classi con queste dipendenze? L'ho provato in questo momento e lo compila bene, quindi la mia ipotesi è che sia correlato a ASP 5 MVC 6, che, dopo tutto, è ancora in beta. Se è così, potrebbe essere un bug che dovresti segnalare. –

+0

@MarkSeemann Ho fatto un tentativo, e ha costruito bene. Lo segnalerò al team ASP5 e vedremo cosa dicono. – gisek

+0

Ho riscontrato lo stesso problema. Hai creato un problema su github? Il problema è risolto in rc1? – Asik

risposta

2

Aggiornamento: Questo problema può essere risolto aggiornando a AutoFixture.AutoMoq 3.41.0 o successivo.

risposta originale:

Nella sezione obiettivi di project.lock.json capitalizzare "MOQ", in modo che l'elemento AutoMoq simile a questo:

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

Purtroppo, si dovrà fare questo di nuovo ogni volta che il file di blocco viene rigenerato.

0

Non è possibile avere due versioni diverse nello stesso progetto. Puoi usare un * per consentire up o downgrade. Vedere questo artic. Dependency-Resolution

+0

Non dice che non puoi avere due versioni differenti. "Quando decidi tra più dipendenze dei cugini, il risolutore usa la versione più bassa che soddisfa tutti i requisiti della versione." – SoftwareCarpenter

+0

Hai bisogno di una versione esatta. per consentire una versione inferiore devi specificare qualcosa come "Moq": "4.2. *" –

+0

Basandosi sul documento a cui ti colleghi in risposta, non dice nulla sul fatto di non consentire due versioni differenti. – SoftwareCarpenter