【问题标题】:Adding Linq support to web project. Compiler chokes将 Linq 支持添加到 Web 项目。编译器扼流圈
【发布时间】:2009-04-07 15:56:20
【问题描述】:

我添加了对System.Core 程序集的引用。 web.config 现在有:

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

IIS 设置为使用 ASP.NET 版本 2.0.50727

虽然智能感知显示了扩展方法,但编译器不理解 linq 语法。我可以在解决方案中的其他类库中使用 Linq。

我该如何解决这个问题?

**编辑: 我在 web.config 中已经有以下内容

<system.web>
 <compilation
    <assemblies>
    <!-- references here //-->
    </assemblies>
      <compilers>
        <compiler language="c#" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" extension=".cs" compilerOptions="/d:DEBUG;TRACE" />
      </compilers>
    </compilation>
</system.web>

我没有&lt;system.codedom&gt; 节点。 这是一个从 1.x 迁移到 2.x 到 3.5 的项目。我是否从 中删除 &lt;compilers&gt; 并将其添加到 &lt;system.codedom&gt;

请注意,由于这是一个大型企业项目(我不想过多地弄乱 web.config) **

【问题讨论】:

    标签: .net asp.net linq


    【解决方案1】:

    只需添加程序集即可创建引用,但您必须指定您使用的编译器版本。

    您需要更新 web.config 文件中的 &lt;system.codedom&gt; 元素:

    <system.codedom>
      <compilers>
        <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
          type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0,
          Culture=neutral, PublicKeyToken=b77a5c561934e089">
          <providerOption name="CompilerVersion" value="v3.5" />
          <providerOption name="WarnAsError" value="false" />
        </compiler>
      </compilers>
    </system.codedom>
    

    您必须确保&lt;compiler&gt; 元素中的重要部分是这个子元素:

    <providerOption name="CompilerVersion" value="v3.5" />
    

    这确保您使用的是 v3.5 的 C# 编译器。

    根据文档,&lt;system.codedom&gt; 元素是 &lt;configuration&gt; 元素的子元素:

    http://msdn.microsoft.com/en-us/library/k6bttwes.aspx

    【讨论】:

    • 谢谢,试试看。很想知道为什么编译器不抱怨解决方案中其他项目的类库中的linq查询
    • @DotnetDude:因为这些是类库,并且项目文件设置为使用 C# 编译器。使用 ASP.NET,您必须使用服务器上的编译器,而不是您的开发/构建机器上的编译器。由于 SxS,您可以使用不同的编译器。
    【解决方案2】:

    使用 Web 应用程序项目而不是网站不会出现此问题(供参考),因为它将代码构建到 DLL 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多