2013-06-06 17 views
11

mi sono trasferito da un progetto MVC 3 a 4 MVC qualche tempo fa ora.visual studio espresso 2012 app.config rimappatura assemblaggio

quando costruire, ricevo i messaggi

1> No way to resolve conflict between "System.Web.Mvc, Version=3.0.0.0 ..." and , Version=2.0.0.0 
1> Consider app.config remapping of assembly "System.Web.WebPages ..." from Version "1.0.0.0" to Version "2.0.0.0" to solve conflict and get rid of warning. 
1> Consider app.config remapping of assembly "System.Web.WebPages.Razorfrom Version "1.0.0.0" [c:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\System.Web.WebPages.Razor.dll] to Version "2.0.0.0" [C:\Users\OEM\documents\visual studio 2012\Projects\DabTrial\packages\Microsoft.AspNet.WebPages.2.0.30506.0\lib\net40\System.Web.WebPages.Razor.dll] to solve conflict and get rid of warning. 

e così via.

Quando guardo i riferimenti, sono tutte le versioni successive, e il web.config si riferisce solo alle versioni successive. Quando cerco l'intera directory della soluzione dal token della chiave pubblica (in Windows Explorer) non trovo file di tipo XML con riferimenti alle versioni precedenti.

ovviamente il percorso dei file è diverso, ma non riesco a trovare dove il compilatore è diretto per il percorso del file DLL in precedenza.

Il progetto si basa e funziona bene, ma suppongo che il compilatore sta suggerendo questi cambiamenti per un motivo. Grazie per qualsiasi aiuto.

+0

avete delle librerie è stato installato con NuGet? – DSlagle

+0

Sì, multiplo e i messaggi di compilazione si sono verificati dopo l'aggiornamento delle librerie. Non ho familiarità con Nuget per sapere come trovare/risolvere questo problema – Brent

+5

Provare ad eseguire update-package -reinstall nella console di gestione pacchetti. Devi avere installato nuget 2.1 per fare questo, ma ridisegnerà tutte le tue librerie di terze parti. Lo ha fatto sul mio progetto pochi giorni fa dopo l'aggiornamento a .net 4.5. Stavo avendo lo stesso tipo di messaggio di errore. Dai un'occhiata a questo link per maggiori informazioni http://stackoverflow.com/questions/12006991/retargeting-solution-from-net-4-0-to-4-5-how-to-retarget-the-nuget-packages – DSlagle

risposta

12

le dipendenze Nuget sono probabilmente riferimento allo versione MVC3. Si può provare a mettere le seguenti nel vostro web di configurazione per forzare la versione MVC4:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="4.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

Si potrebbe anche provare a eseguire le seguenti operazioni nella Package Manager Console

Update-Package -Reinstall 

Bisogna avere almeno la versione 2.1 di NuGet per questo comando ma aggiornerà i tuoi pacchetti e li ridigitalizzerà se hai aggiornato .NET. Puoi controllare questo post per maggiori informazioni.

Retargeting solution from .Net 4.0 to 4.5 - how to retarget the NuGet packages?

+0

Grazie tu DSlagle - stavo per chiederti di postare così potevo accettare la risposta. Sto indovinando che questo sarà presto contrassegnato come duplicato, ma posso vedere come le mie ricerche non hanno trovato il tuo link StackOverflow. – Brent

+0

appena è nota a margine, 'Update-pacchetto -Reinstall' sarebbe voluto molto tempo in base al progetto – mhesabi

+1

ATTENZIONE - Questo con questo comando fatto la maggior parte dei miei riferimenti non validi e ho dovuto ricreare ancora una volta la soluzione. – Dementic

0

Ho anche avuto questi problemi. Ho fatto solo due cose:

  • aggiornati System.Web.Mvc e tutte le dipendenze l'ultima versione (5.2.3)
  • ricostruire tutti soluzione (ho usando "Soluzione ->Clean soluzione "poi" soluzione ->Genera soluzione ")