Domanda

Sto provando a caricare Linq sul mio server Web abilitato per .Net 3.5 aggiungendo quanto segue alla mia pagina .aspx:

<%@ Import Namespace="System.Query" %>

Tuttavia, questo fallisce e mi dice che non riesce a trovare lo spazio dei nomi.

Il tipo o il nome dello spazio dei nomi "Query" non esiste nello spazio dei nomi "Sistema"

Ho anche provato senza fortuna:

  • System.Data.Linq
  • System.Linq
  • System.Xml.Linq

Credo che .Net 3.5 funzioni perché var hello = "Hello World" sembra funzionare.

Qualcuno può aiutare, per favore?

PS:Voglio solo chiarire che non utilizzo Visual Studio, ho semplicemente un file Editor di testo e scrivi il mio codice direttamente nei file .aspx.

È stato utile?

Soluzione

Ho selezionato la versione 2 in IIS e I

Beh, sicuramente è questo il tuo problema?Selezionare 3.5.

In realtà, ecco le informazioni reali:

http://www.hanselman.com/blog/HowToSetAnIISApplicationOrAppPoolToUseASPNET35RatherThan20.aspx

Altri suggerimenti

Che aspetto ha la parte del tuo file web.config?

Ecco come appare un nuovissimo progetto ASP.NET 3.5 realizzato con Visual Studio 2008:

<assemblies>
  <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.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>

Ho trovato la risposta :) Avevo bisogno di aggiungere quanto segue al mio web.config:

<assemblies>  
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>  
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>  
    <add assembly="System.Xml.Linq, 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"/>
</assemblies>

Quindi potrei aggiungere quanto segue al mio codice:

<%@ Import Namespace="System.Linq" %>

@Volere,

Grazie per l'aiuto.Ho accettato una delle tue risposte :)

Assicurati che il tuo progetto sia impostato sulla destinazione 3.5 e non 2.0.

Come altri hanno già detto, il tuo test 'var' è un test di C#3 (cioèVS2008), non il framework 3.5.

Se imposti correttamente le impostazioni di destinazione del framework del progetto, non dovresti aspettarti di dover aggiungere manualmente i riferimenti alla DLL a questo punto.

IL var hello roba è magia del compilatore e funzionerà senza Linq.

Prova ad aggiungere un riferimento a System.Core


Scusa, non sono stato chiaro.Volevo dire aggiungere System.Core ai riferimenti del progetto web, non alla pagina.

IL Import sulla pagina stanno fondamentalmente usando solo istruzioni, permettendoti di saltare lo spazio dei nomi sulla pagina.

Nel file csproj potrebbe mancare il riferimento System.Core.Cerca una riga nel file csproj come questa:

<Reference Include="System" />

E aggiungi una riga sotto in questo modo:

<Reference Include="System.Core" />
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top