2016-01-22 14 views
15

Ho una grande soluzione con 30 progetti di cui 2 sono progetti web (MVC e WebAPI) con una serie di progetti di librerie di classi di sfondo.Costruire un progetto web rompe la versione compilata del secondo in soluzione

Ho installato uno studio visivo per ospitare i progetti Web in IIS.

Se eseguo una compilazione pulita, seguita da una compilazione completa dell'intera soluzione, l'accesso a entrambi i progetti tramite un browser funziona correttamente. (sono in cartelle diff e sono ospitati su diff 'domini' in iis)

Se non apporto modifiche al codice, semplicemente ricostruisco uno dei 2 progetti web, l'ALTRO smette di funzionare.

Per essere chiari, la ricostruzione del progetto WebAPI causa errori del progetto MVC. E viceversa.

L'errore che ottengo sta dicendo che System.Web.Http.Formatter non è stato trovato. Il dettaglio dice che la versione dell'assembly individuata è diversa dalla versione di riferimento. Il controllo della cartella bin mostra che non è questo il caso.

+0

Puoi darci un errore esatto in dettaglio. Inoltre, se VS afferma che tali riferimenti hanno una versione diversa, puoi essere sicuro che lo sia. Stai ospitando le app web api e mvc nello stesso sito in IIS ?. – efaruk

+1

Ho avuto problemi simili sui conflitti di versione di MVC 3.0.0.0 e 3.0.0.1, forse è correlato? –

+0

Per iniziare, quale versione di MVC stai usando? Da quali altri pacchetti dipendono i tuoi progetti? – Eniola

risposta

8

Assicurarsi che tutte le risorse della soluzione siano aggiornate. Se si utilizza Nuget, aggiornare tutti i pacchetti in tutti i progetti (eseguire prima il backup!). Sembra che tu abbia una mancata corrispondenza della versione, in cui manca la funzionalità nelle DLL copiate nella directory di output per la soluzione. Può comportare la modifica di alcune voci nel Web.config di ciascun progetto, ma senza l'accesso al codice, è difficile saperlo con certezza.

Riporta indietro dopo aver aggiornato ogni libreria e verificato che le versioni corrispondano a tutti i progetti nella soluzione.

+1

Grazie per la risposta, al momento sono fuori dal pc, lo farò domani mattina e darò un feedback. – user230910

+1

Un'altra cosa, assicurati di controllare il tuo ordine di costruzione. Se i progetti MVC e WebAPI sono referenziati tra loro, è necessario creare prima il progetto dipendente nell'ordine di compilazione. Dovrebbe essere impostato automaticamente, ma in una soluzione così ampia, le cose possono andare storte. Prova a suddividere la tua soluzione in blocchi più piccoli per aumentare le prestazioni. La tua cartella di output deve essere molto intasata. – Apache

+0

Inoltre, se si utilizza NuGet, assicurarsi che le versioni installate dei pacchetti in uso siano uguali per entrambi i progetti. – Steve