10

ASP.NET MVC4 应用程序在包含 Razor 帮助程序的 App_Code 文件夹中包含 Helper.chtml 文件。升级到 Visual Studio 社区版后编译错误

Error   CS0234  The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?) C:\Users\user\AppData\Local\Temp\Temporary ASP.NET Files\admin\e209c0e0\c74032ba\Sources_App_Code\helper.cshtml.72cecc2a.cs 16

开始发生。生成的代码包含:

namespace ASP {
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;  // Error occurs in this line
    using System.Net;
    using System.Web;
    using System.Web.Helpers;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.WebPages;
    using System.Web.WebPages.Html;

    #line 1 "C:\Web\Erp\App_Code\Helper.cshtml"
    using System.Web.Mvc;

    #line default
    #line hidden

    #line 2 "C:\Web\Erp\App_Code\Helper.cshtml"
    using System.Threading;

    #line default
    #line hidden

    #line 3 "C:\Web\Erp\App_Code\Helper.cshtml"
    using MyApp.Business;

    #line default
    #line hidden


    public class Helper : System.Web.WebPages.HelperPage {

错误指向using System.Linq;行。

如何解决这个问题?使用 ASP.NET4

我试图将 System.Core 的引用添加到项目中,但得到了它已被引用的错误。web.confing 包含

<compilation debug="true">
</compilation>

我把它改成

<compilation debug="true" targetFramework="4.0">
</compilation>

根据 命名空间“系统”和 https://social.msdn.microsoft.com/Forums/en-US/c970ea3d-5238-4ec7-8859-e16b40dccd3d/the-type中不存在类型或命名空间名称“Linq” -or-namespace-name-linq-does-not-exist-in-the-namespace-systemare-you-missing-an?forum=linqprojectgeneral

但在那之后编译错误更改为

Error   CS0234  The type or namespace name 'global_asax' does not exist in the namespace 'ASP' (are you missing an assembly reference?)

指向代码

    protected static ASP.global_asax ApplicationInstance {
        get {
            return ((ASP.global_asax)(Context.ApplicationInstance));
        }
    }

在生成的 helper.cshtml.72cecc2a.cs 文件中。

如何解决此错误?

更新

web.config 的相关部分是:

<?xml version="1.0" encoding="utf-8"?>

<configuration>
  <system.data>
    <DbProviderFactories>
      <clear />
      <add name="Npgsql Data Provider" invariant="Npgsql" support="FF" description=".Net Framework Data Provider for Postgresql Server" type="Npgsql.NpgsqlFactory, Npgsql" />
    </DbProviderFactories>
  </system.data>

  <system.web>
    <httpModules>
      <remove name="RoleManager" />
    </httpModules>

    <compilation debug="true">
    </compilation>

    <customErrors mode="Off" />
    <globalization uiCulture="auto" culture="auto" enableClientBasedCulture="true" />
    <pages>
      <namespaces>
        <add namespace="MYApp.Business" />
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
4

1 回答 1

-2

尝试在默认控制器中添加 System.Linq 命名空间。

于 2016-03-15T23:12:23.830 回答