.NET 4.0 web.config中的编译错误 - 找不到Linq

时间:2011-06-27 16:54:56

标签: asp.net .net-4.0

我可以在Visual Studio 2010中编译和测试我的.NET 4.0 Web应用程序。但是,如果我将本地IIS指向包含该应用程序的文件夹,则会出现以下错误:

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 

如何从框架中编译web.config不会为我编译?

我在网上发现了类似的问题,大多数只是说'添加此引用...',但编辑默认的web.config是不对的 - 可以吗?

3 个答案:

答案 0 :(得分:43)

这对我有用。将此程序集放在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>

答案 1 :(得分:10)

我认为你需要在web.config中添加下面的程序集 -

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

您将在核心程序集中获得System.Linq

答案 2 :(得分:0)

如果你有一个网站,asp.net需要适当的引用才能编译它。 Web应用程序不需要它。

machine.config中引用了一些程序集,根据您的代码可能会丢失一些程序集,您可以将它们添加到machine.config或root web.config中。