2011-06-27 9 views
8

Puedo compilar y probar mi aplicación web .NET 4.0 muy bien en Visual Studio 2010. Si, sin embargo, apunto mi IIS local a la carpeta que contiene la aplicación, el siguiente error:Error de compilación en .NET 4.0 web.config - No se encontró Linq

Compiler Error Message: CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?) 
Source Error: 
Line 388:    <add namespace="System.ComponentModel.DataAnnotations" /> 
Line 389:    <add namespace="System.Configuration" /> 
Line 390:    <add namespace="System.Linq" /> 
Line 391:    <add namespace="System.Text" /> 
Line 392:    <add namespace="System.Text.RegularExpressions" /> 

Source File: c:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config Line: 390 

¿Cómo es que el web.config del marco no va a compilar para mí?

He encontrado problemas similares en la web y la mayoría simplemente dice 'agregar esta referencia ...', pero no puede ser lo correcto editar el archivo web.config predeterminado, ¿o sí?

+0

Especifique cómo está apuntando su IIS local a la carpeta? ¿Estás haciendo un despliegue adecuado del proyecto web a IIS? –

+0

¿Tiene esta línea en ese archivo? '' (System.Linq debe estar en System.Core) – Rup

+0

@Greebo he intentado tanto la publicación de una carpeta y simplemente señalando IIS en la carpeta de mi proyecto. Ninguno de los dos funciona – nickd

Respuesta

8

creo que es necesario agregar los ensamblados a continuación en su web.config -

<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 

Usted recibirá System.Linq en el conjunto del núcleo

30

Esto funcionó para mí. Tienen esta asambleas en el archivo web.config

<system.web> 
    <compilation debug="true"> 
     <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.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     <add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     </assemblies> 
    </compilation> 
</system.web> 
+0

Para aclarar, esto va dentro de '' . – vaindil

+0

Esto funcionó para mí ... –

+1

Sólo en caso de algún lector utiliza MVC, un recordatorio de que esto va dentro del web.config principal, no el interior de la carpeta Vistas. – pwilcox

0

Si usted tiene un sitio web, asp.net necesita referencias adecuadas para poder compilarlo. Una aplicación web no necesitaría eso.

hay Montaje de referencia en el machine.config, algunos podrían faltar en función de su código, puede añadirlos en Machine.config o Web.config raíz.

Cuestiones relacionadas