Pregunta

Estoy intentando cargar Linq en mi servidor web habilitado para .Net 3.5 agregando lo siguiente a mi página .aspx:

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

Sin embargo, esto falla y me dice que no puede encontrar el espacio de nombres.

El tipo o nombre del espacio de nombres 'Consulta' no existe en el espacio de nombres 'Sistema'

También lo intenté sin suerte:

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

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

¿Alguien puede ayudar por favor?

PD:Solo quiero aclarar que no uso Visual Studio, simplemente tengo un Editor de texto y escribir mi código directamente en archivos .aspx.

¿Fue útil?

Solución

Tengo seleccionada la versión 2 en IIS y

Bueno, ¿seguramente ese es tu problema?Seleccione 3.5.

En realidad, aquí está la información real:

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

Otros consejos

¿Cómo se ve la parte de su archivo web.config?

Así es como se ve un nuevo proyecto ASP.NET 3.5 creado 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>

Encontré la respuesta :) Necesitaba agregar lo siguiente a mi 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>

Entonces podría agregar lo siguiente a mi código:

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

@Voluntad,

Gracias por tu ayuda.He aceptado una de tus respuestas :)

Asegúrese de que su proyecto esté configurado como objetivo 3.5 y no 2.0.

Como han dicho otros, su prueba 'var' es una prueba de C#3 (es decir,VS2008), no el marco 3.5.

Si establece correctamente la configuración de destino del marco del proyecto, no debería esperar tener que agregar manualmente referencias dll en este punto.

El var hello Todo esto es magia del compilador y funcionará sin Linq.

Intente agregar una referencia a System.Core


Lo siento, no fui claro.quise decir agregar System.Core a las referencias del proyecto web, no a la página.

El Import en la página básicamente solo usan declaraciones, lo que le permite omitir el espacio de nombres en la página.

Es posible que al archivo csproj le falte la referencia System.Core.Busque una línea en el archivo csproj como esta:

<Reference Include="System" />

Y agregue una línea debajo como esta:

<Reference Include="System.Core" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top