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.
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" />