【问题标题】:Compilation error in .NET 4.0 web.config - Linq not found.NET 4.0 web.config 中的编译错误 - 未找到 Linq
【发布时间】:2011-06-27 16:54:55
【问题描述】:

我可以在 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 不是正确的——可以吗?

【问题讨论】:

  • 指定如何将本地 IIS 指向该文件夹?您是否将 Web 项目正确部署到 IIS?
  • 你在那个文件中有这一行吗? &lt;add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /&gt;(System.Linq 应该在 System.Core 中)
  • @Greebo 我已经尝试过发布到一个文件夹并且只是将 IIS 指向我的项目文件夹。两者都不起作用。
  • 好的。如果我将该程序集引用添加到我的应用程序 web.config,我可以继续处理一个新的令人兴奋的错误。好奇,我创建了一个标准的 MVC3 应用程序并发布了它。如上所述,它也失败了。我可以继续向所有内容添加程序集引用,但是 发生了什么事!!
  • 您检查过您的应用程序池的 .NET Framework 版本吗?

标签: asp.net .net-4.0


【解决方案1】:

这对我有用。在 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>

【讨论】:

  • 澄清一下,这是在&lt;system.web&gt;里面。
  • 以防万一任何读者使用 mvc,提醒它在主 web.config 中,而不是在 Views 文件夹中。
【解决方案2】:

我认为您需要在 web.config 中添加以下程序集 -

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 2013-11-11
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 2015-06-06
      • 1970-01-01
      相关资源
      最近更新 更多