2010-09-30 16 views
6

Quando apro un sito Web Asp Net in Visual Studio 2010, le proprietà dicono "Target Framework 3.5", tuttavia quando provo a utilizzare lo spazio dei nomi Linq il compilatore si lamenta di ciò.Spazio dei nomi System.Linq mancante anche con riferimento a System.Core.Dll

"Il tipo o dello spazio dei nomi il nome 'var' non è stato trovato (che le manca un un riferimento all'assembly direttiva using o?)"

"Il tipo o dello spazio dei nomi il nome 'Linq' non esiste nello spazio dei nomi 'Sistema' (ti manca un riferimento all'assembly?) "

Ho fatto riferimento manualmente ad alcune DLL per risolvere il mio problema, ma ancora senza successo.

<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 

Aiuto? :-)

risposta

5

Se non si può nemmeno usare var, questo suggerisce che non sta nemmeno utilizzando la versione corretta del compilatore C#. (Dovresti essere in grado di utilizzare var anche quando esegui il targeting di .NET 2.0, a patto che tu stia utilizzando il compilatore C# 3 o C# 4.) Vorrei concentrarmi sul fatto di farlo funzionare prima di ogni altra cosa.

È possibile che si sta eseguendo su IIS ma non è configurato in modo appropriato? Potrebbe valere la pena guardare la configurazione del tuo sito web intorno a quel lato delle cose, e magari rieseguire l'aspnet_regiis.

+0

Grazie per avermi nella giusta direzione - quando sto cercando all'uscita YSOD ed espansione Show Detailed Compiler questo è ciò che ottengo: Microsoft (R) Visual C# 2005 Compiler versione 8.00.50727.4016 per Microsoft (R) Windows (R) 2005 Framework versione 2.0.50727 --- ma esito eseguendo aspnet_regiis, come può Sono sicuro di non rompere cose? È un server live. – joeriks

+0

... ma dov'è quel compilatore C# 3? ... – joeriks

+0

... imparando cose nuove qui ... ci sono molti riferimenti 2.0 nella sezione di compilazione IIS .Net del sito. (Non trovato nel web.config). – joeriks

2

Ho appena fissato un problema simile l'aggiunta di un attributo targetFramework="4.0" all'elemento compilation in web.config

Il frammento in questione è modificata:

<compilation debug="true" targetFramework="4.0"> 
    <assemblies> 
    <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    </assemblies> 
</compilation> 
+0

Grazie amrtn.it funziona per me. –

Problemi correlati