2012-08-25 10 views
28

questo problema è esattamente lo stesso di questo post http://forums.asp.net/t/1807797.aspx/1?System+Net+Http+is+not+found e questo on StackOverflowerrore di analisi del codice Impossibile caricare il file o l'assembly 'System.Net.Http, Version = 2.0.0.0 in MVC4 Web API

ho tutto il ultimi bit RTM, Avviato un nuovo MVC 4 in .Net 4.5, aggiunto il pacchetto nuget WebAPI e ora la mia analisi del codice fallisce con lo stesso errore riportato nel link precedente.

CA0058 di errore che esegue analisi del codice CA0058: L'assembly di riferimento 'System.Net.Http, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a' non è stato trovato. Questo assembly è richiesto per l'analisi ed è stato referenziato da: C: \ Projects \ InHouse \ TimeRecorder \ StopGap \ TimeRec \ bin \ TimeRecorder, C: \ Projects \ InHouse \ TimeRecorder \ StopGap \ packages \ Microsoft.AspNet.WebApi.Core .4.0.20710.0 \ lib \ net40 \ System.Web.Http.dll. [errori e avvisi] - (globali)

Da quello che posso trovare questo sembrava accadere con le versioni RC perché c'era un conflitto tra il .NET 4.5 framework System.Net.Http e la versione del WebAPI del System.Net.Http.

Le altre risposte su StackOverflow response parlano di downgrade da .Net 4.5 a 4.0, per ovvi motivi, questa non è la mia soluzione preferita!

+0

Sto riscontrando anche questo problema, hai trovato una soluzione? –

+0

Non riesco a riprodurre il problema con i bit RTM di VS 2012. Una cosa strana per me è che tutti i modelli MVC 4 in MVC4 hanno già installato il pacchetto web API. Perché devi installare di nuovo il pacchetto? –

+0

A partire da Visual Studio 2012, una soluzione migliore è: http://stackoverflow.com/questions/17298281/using-microsoft-bcl-async-with-code-analysis-causes-errors/17935400#17935400. –

risposta

71

Provare quanto segue:

  1. A seconda della versione di Visual Studio passare a:
    • VS 2010:
      %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop
    • VS 2012:
      %ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Team Tools\Static Analysis Tools\FxCop
  2. Aprire FxCopCmd.exe.config e cambiare AssemblyReferenceResolveMode da StrongName-StrongNameIgnoringVersion.
  3. Salvare la modifica e ricostruire il progetto.
+0

Questo ha funzionato per me, grazie! –

+0

Avevo 'CA0058' che si lamentava di non trovare una versione di EntityFramework a cui si supponeva facesse riferimento, ma da allora aveva effettuato l'aggiornamento. Ero sconcertato, ma questo ha funzionato. Ho intenzione di indovinare la versione non importa in questo caso, quindi questo è un bene per me. – Chris

+1

Questo risolve il sintomo, non il problema sottostante. Ne abbiamo abbastanza di questo tipo di problemi come è senza aggiungere altri! – brumScouse

2

Ho avuto lo stesso problema (impossibile creare localmente e in remoto in azzurro). Questa soluzione mi ha aiutato: http://connect.microsoft.com/VisualStudio/feedback/details/760208/nuget-package-for-asp-net-mvc-4-web-api-does-not-reference-correct-net-4-5-assemblies#

qui è la parte che avete bisogno:

Copiare i file System.Net.Http.dll e System.Net.Http.xml contenute nei pacchetti \ Microsoft.Net. La directory Http.2.0.20710.0 \ lib \ net40 nella directory packages \ Microsoft.AspNet.WebApi.Core.4.0.20710.0 \ lib \ net40. Poiché l'assembly System.Net.Http.dll mancante si trova ora nella stessa posizione dell'assembly System.Web.Http.dll di riferimento, l'analisi del codice ora può risolvere correttamente l'assembly System.Net.Http in conflitto.

0

Il problema è causato dal fatto che si ha una dipendenza da una versione più recente di System.Net.Http, rispetto a quella richiesta da uno degli altri gruppi a cui si fa riferimento.

Il modo corretto per risolvere questo problema consiste nell'aggiungere reindirizzamenti dependentAssembly allo app.config di progetti in errore. La risposta accettata di disabilitare gli errori maschera solo un problema sottostante.

Aggiungere il seguente alla sezione runtime di app.config rimappare la vecchia versione che non può essere risolto per la versione di riferimento nel progetto. I numeri di versione dovrebbero ovviamente essere aggiornati per corrispondere alla tua situazione.

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 
+0

La soluzione sopra menzionata non ha funzionato per me, –

Problemi correlati