7

L'applicazione ASP.NET MVC4 contiene il file Helper.chtml nella cartella App_Code che contiene helper Razor. Dopo l'aggiornamento a Visual Studio edizione Communitity errore di compilazioneCome correggere l'errore Il nome di tipo o spazio dei nomi 'Linq' non esiste nello spazio dei nomi 'Sistema'

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 

inizia a verificarsi. codice generato contiene:

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 { 

punti di errore per using System.Linq; linea.

Come risolvere il problema? Utilizzo di ASP.NET4

Ho cercato di aggiungere un riferimento a System.Core per il progetto ma ho rilevato che è già referenziato. web.confing contiene

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

ho cambiato

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

secondo The type or namespace name 'Linq' does not exist in the namespace 'System' e https://social.msdn.microsoft.com/Forums/en-US/c970ea3d-5238-4ec7-8859-e16b40dccd3d/the-type-or-namespace-name-linq-does-not-exist-in-the-namespace-systemare-you-missing-an?forum=linqprojectgeneral

ma dopo che compila modifiche errori a

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

che indica il codice

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

nel file helper.cshtml.72cecc2a.cs generato.

Come risolvere questo errore?

Aggiornamento

parti rilevanti del web.config sono:

<?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> 
+0

Poiché si sta già utilizzando ASP.Net V4, probabilmente non è necessario applicare la risoluzione come suggerito nel collegamento condiviso. Prova a eliminare il riferimento di 'Sistema' e aggiungilo di nuovo. – Yogi

+0

Ho eliminato e aggiunto nuovamente il riferimento al sistema ma il problema persiste. – Andrus

+0

@Yogi Ho aggiornato queston e aggiunto il contenuto principale di web.config. Forse questo o Views \ web.config può essere modificato per risolvere questo problema – Andrus

risposta

0

Prova aggiungere System.Linq namespace nel controller di default.

+0

Che cos'è il controller predefinito? L'app ha una classe di base comune per i controller, se ne aggiungono altri? – Andrus

+0

è questo che controlla la tua azione. Ad es. per impostazione predefinita, Action Controller controlla le tue azioni di accesso e registrazione. –

+0

controlla anche questo post e la sezione dei commenti potrebbe essere utile. http://stackoverflow.com/a/22873162/5600402 sembra che alcuni dei tuoi riferimenti non siano stati aggiornati durante l'aggiornamento di VS. –