Pergunta

Estou tentando carregar o Linq em meu servidor web habilitado para .Net 3.5 adicionando o seguinte à minha página .aspx:

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

No entanto, isso falha e me diz que não é possível encontrar o namespace.

O tipo ou nome do namespace 'Query' não existe no namespace 'System'

Eu também tentei sem sorte:

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

Acredito que o .Net 3.5 está funcionando porque var hello = "Hello World" parece funcionar.

Alguém pode ajudar por favor?

PS:Só quero esclarecer que não utilizo Visual Studio, simplesmente tenho um Editor de texto e escrever meu código diretamente em arquivos .aspx.

Foi útil?

Solução

Tenho a versão 2 selecionada no IIS e

Bem, certamente esse é o seu problema?Selecione 3.5.

Na verdade, aqui estão as informações reais:

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

Outras dicas

Como é a parte do seu arquivo web.config?

Esta é a aparência de um novo projeto ASP.NET 3.5 feito com 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>

Encontrei a resposta :) Precisei adicionar o seguinte ao meu 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>

Então eu poderia adicionar o seguinte ao meu código:

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

@Vai,

Obrigado pela ajuda.Aceitei uma de suas respostas :)

Certifique-se de que seu projeto esteja definido como alvo 3.5 e não 2.0.

Como já foi dito, seu teste 'var' é um teste de C#3 (ou seja,VS2008), não a estrutura 3.5.

Se você definir as configurações de destino da estrutura do projeto corretamente, não deverá esperar a necessidade de adicionar manualmente referências de DLL neste momento.

O var hello stuff é mágica do compilador e funcionará sem o Linq.

Tente adicionar uma referência a System.Core


Desculpe, não fui claro.eu quis dizer adicionar System.Core às referências do projeto web, não à página.

O Import na página são basicamente apenas instruções using, permitindo que você pule o namespace na página.

O arquivo csproj pode estar faltando a referência System.Core.Procure uma linha no arquivo csproj como esta:

<Reference Include="System" />

E adicione uma linha abaixo assim:

<Reference Include="System.Core" />
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top