Frage

Ich versuche, Linq auf meinen .Net 3.5-fähigen Webserver zu laden, indem ich Folgendes zu meiner .aspx-Seite hinzufüge:

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

Dies schlägt jedoch fehl und zeigt mir an, dass der Namespace nicht gefunden werden kann.

Der Typ- oder Namespace-Name „Query“ ist im Namespace „System“ nicht vorhanden.

Ich habe es auch ohne Erfolg versucht:

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

Ich glaube, dass .Net 3.5 funktioniert, weil var hello = "Hello World" scheint zu funktionieren.

Kann mir bitte jemand helfen?

PS:Ich möchte nur klarstellen, dass ich kein Visual Studio verwende, sondern lediglich eines habe Texteditor und schreibe meinen Code direkt in ASPX-Dateien.

War es hilfreich?

Lösung

Ich habe Version 2 in IIS ausgewählt und ich

Nun, das ist doch sicher Ihr Problem?Wählen Sie 3.5.

Eigentlich sind hier die echten Informationen:

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

Andere Tipps

Wie sieht der Teil Ihrer web.config-Datei aus?

So sieht es für ein brandneues ASP.NET 3.5-Projekt aus, das mit Visual Studio 2008 erstellt wurde:

<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>

Ich habe die Antwort gefunden :) Ich musste meiner web.config Folgendes hinzufügen:

<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>

Dann könnte ich meinem Code Folgendes hinzufügen:

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

@Wille,

Vielen Dank für Ihre Hilfe.Ich habe eine Ihrer Antworten akzeptiert :)

Stellen Sie sicher, dass Ihr Projekt auf Ziel 3,5 und nicht auf 2,0 eingestellt ist.

Wie andere bereits gesagt haben, ist Ihr „var“-Test ein Test von C#3 (d. h.VS2008), nicht das 3.5-Framework.

Wenn Sie die Zieleinstellungen des Projekt-Frameworks richtig festlegen, sollten Sie nicht damit rechnen, dass Sie an dieser Stelle DLL-Referenzen manuell hinzufügen müssen.

Der var hello stuff ist Compiler-Magie und funktioniert ohne Linq.

Versuchen Sie, einen Verweis auf hinzuzufügen System.Core


Tut mir leid, ich habe mich nicht klar ausgedrückt.Ich meinte hinzufügen System.Core auf die Referenzen des Webprojekts, nicht auf die Seite.

Der Import auf der Seite verwenden im Grunde nur Anweisungen, sodass Sie den Namespace auf der Seite überspringen können.

In der csproj-Datei fehlt möglicherweise die System.Core-Referenz.Suchen Sie in der csproj-Datei nach einer Zeile wie dieser:

<Reference Include="System" />

Und fügen Sie darunter eine Zeile wie diese ein:

<Reference Include="System.Core" />
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top