2010-06-16 12 views
7

Ho appena aggiornato un progetto VS 2008 a VS 2010, convertendo il progetto ma mantenendo il target come .NET 3.5 (SP1 è installato). Il mio progetto ha funzionato senza problemi in VS 2008 su un'altra macchina.Impossibile trovare l'errore dello spazio dei nomi System.Web.Script.Service dopo l'aggiornamento a Visual Studio 2010

ho riferimenti a System.Web.Extensions.dll aggiunto, ma sto ancora ricevendo i seguenti errori dal codice nella cartella App_Code:

1) Non riesci a trovare System.Web.Script.Service namespace.

2) Digitare "System.Web.Script.Services.ScriptService" non è definito.

3) Il tipo 'System.Runtime.Serialization.Json.DataContractJsonSerializer' non è definito.

Qualcuno ha qualche idea su quale potrebbe essere il problema in quanto sono abbastanza perplesso? :(

+0

Interessante ... quando si utilizza il Visualizzatore oggetti in VS 2010 e si esegue il drill-down in C: \ Programmi \ Reference Files \ Reference \ Microsoft \ Framework \ v3.5 \ System.Web.Extensions.dll> System.Web.Script. Servizi Non riesco a trovare un oggetto ScriptService. Inoltre, quando eseguo il drill-down in C: \ Programmi \ Reference Files \ Reference \ Microsoft \ Framework \ v3.0 \ System.Runtime.Serialization.dll> System.Runtime.Serialization non vedo neanche un elemento JSON. Corrisponde ai problemi riportati nel codice. Mi manca qualche installazione? – Gavin

+1

È interessante anche il fatto che se scelgo come target il framework 4.0 anziché 3.5, tutto funziona correttamente. Purtroppo 4.0 non è ancora disponibile sul mio server web :( – Gavin

risposta

5

Sembra che ci sia un bug da Microsoft dove Target Framework per v3.5 in VS2010 è v3.0 del GAC! Spostare gli assembly con problemi nella cartella v3.0 sembra iniziare a risolvere i problemi, ma è un po 'disordinato. Penso che aspetterò che Microsoft fornisca una soluzione adeguata per VS 2010!

http://www.cnblogs.com/dudu/archive/2010/06/24/1764549.html

Google translate aiuta con questo link!

Altro dettaglio di assemblee copiati nella cartella v3.0 dalla cartella v3.5 come un work-around a questo VS 2010 bug:

http://forums.asp.net/p/1569744/3942724.aspx

Se qualcun altro sta incontrando questo problema e vuole tenere traccia/votare fino lo stato di questo bug con Microsoft: https://connect.microsoft.com/VisualStudio/feedback/details/570557/targeting-net-framework-3-5-actually-targets-3-0-gac

Aggiornamento - Microsoft ha pubblicato la seguente correzione al bug report ho sollevato:

Per creare un sito Web che punta a 3.5, aggiungere un tag del compilatore nel file web.config come si incolla sotto, quindi la compilazione della lingua raccoglierà la versione corretta di vbc.exe. È possibile creare un nuovo sito Web 3.5 e il file web.config predefinito include quei tag a cui è possibile fare riferimento.

<system.codedom> 
    <compilers> 
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <providerOption name="CompilerVersion" value="v3.5"/> 
     <providerOption name="OptionInfer" value="true"/> 
     <providerOption name="WarnAsError" value="false"/> 
    </compiler> 
    </compilers> 
</system.codedom> 
1
  • Controlla la tua assemblea web.config voci.

  • Controllare il .NET Framework target in Visual Studio 2010 progetto, di default è 4,0

  • Controllare IIS, assicurarsi si sta utilizzando il framework appropriato per il proprio sito . La nuova installazione di .NET 4.0 può modificare il framework predefinito in 4.0

+0

Ciao Rick, ho già queste due voci: Gavin

+0

Ciao Rick, saluti di nuovo ma sto già prendendo di mira 3,5 invece di 4.0 E sto eseguendo il sito Web direttamente da VS 2010 quindi IIS non dovrebbe entrare in gioco? – Gavin

+0

La tua macchina ha mai Visual Studio 2010 Beta o RC? Ho dovuto rimuovere manualmente alcune directory per il 2010 per funzionare correttamente –

1

Ho risolto un problema simile modificando il framework di destinazione del mio sito Web da 3.5 a 4.0 e nuovamente a 3.5.

Ciò ha comportato molte aggiunte al mio file web.config che potrebbero rendere molto più facile per Visual Studio supportare il mio progetto.

ho mai "aggiornato il mio progetto a Visual Studio 2010", ma questo era un sito web aspx più vecchio e questo potrebbe essere stato la prima volta è stato aperto con VS 2010.

15

In Visual Studio 2012, essere sicuri di aggiungi il riferimento per System.Web.Extensions dato che è quello che contiene System.Web.Script.Serialization.

0

Ho risolto anche un problema simile cambiando il framework di destinazione del mio sito Web da 3.5 a 4.0 e di nuovo a 3.5 nuovamente.

Problemi correlati