Импортировать пространство имен System.Query - PullRequest
3 голосов
/ 12 августа 2008

Я пытаюсь загрузить Linq на моем веб-сервере с поддержкой .Net 3.5, добавив на мою страницу .aspx следующее:

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

Однако, это терпит неудачу и говорит мне, что он не может найти пространство имен.

Тип или имя пространства имен «Запрос» не существует в пространстве имен «Система»

Я тоже безуспешно пытался:

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

Я считаю, что .Net 3.5 работает, потому что var hello = "Hello World", кажется, работает.

Может кто-нибудь помочь, пожалуйста?

PS: Я просто хочу уточнить, что я не использую Visual Studio, у меня просто есть Текстовый редактор и я пишу свой код прямо в файлы .aspx.

Ответы [ 6 ]

4 голосов
/ 12 августа 2008

В IIS выбрана версия 2, а я

Ну, конечно, это твоя проблема? Выберите 3.5.

Собственно, вот реальная информация:

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

2 голосов
/ 12 августа 2008

Я нашел ответ :) Мне нужно было добавить следующее в мой 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>

Тогда я мог бы добавить следующее в мой код:

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

@ Will

Спасибо за вашу помощь. Я принял один из ваших ответов:)

2 голосов
/ 12 августа 2008

Как выглядит часть вашего файла web.config?

Вот как выглядит новый проект ASP.NET 3.5, созданный в 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>
1 голос
/ 12 августа 2008

Убедитесь, что для вашего проекта задано значение 3.5, а не 2.0.

Как уже говорили другие, ваш тест 'var' - это тест C # 3 (т.е. VS2008), а не фреймворк 3.5.

Если вы правильно установили целевые параметры фреймворка проекта, не стоит ожидать, что на этом этапе вам нужно будет вручную добавлять ссылки на dll.

0 голосов
/ 11 мая 2010

В файле csproj может отсутствовать ссылка System.Core. Найдите в файле csproj строку, подобную этой:

<Reference Include="System" />

И добавьте строку под ним так:

<Reference Include="System.Core" />
0 голосов
/ 12 августа 2008

Материал var hello является магией компилятора и будет работать без Linq.

Попробуйте добавить ссылку на System.Core


Извините, мне было непонятно. Я имел в виду добавить System.Core к ссылкам веб-проекта, а не к странице.

Import на странице в основном используют операторы, что позволяет вам пропустить пространство имен на странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...