Aplikacja ASP.NET MVC4 zawiera plik Helper.chtml w folderze App_Code zawierającym pomoce programu Razor. Po uaktualnieniu do edycji Visual Studio Communitity skompilować błądJak naprawić błąd Typ lub przestrzeń nazw "Linq" nie istnieje w przestrzeni nazw "System"
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
zacznie występować. Wygenerowany kod zawiera:
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 {
Błąd wskazuje na linię using System.Linq;
.
Jak to naprawić? Przy użyciu ASP.NET4
Próbowałem dodać odniesienie do System.Core do projektu, ale dostałem błąd, że jest już odwołanie. web.confing zawiera
<compilation debug="true">
</compilation>
Zmieniłem go
<compilation debug="true" targetFramework="4.0">
</compilation>
według The type or namespace name 'Linq' does not exist in the namespace 'System' i 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
ale potem skompilować zmiany błędzie do
Error CS0234 The type or namespace name 'global_asax' does not exist in the namespace 'ASP' (are you missing an assembly reference?)
co wskazuje na kod
protected static ASP.global_asax ApplicationInstance {
get {
return ((ASP.global_asax)(Context.ApplicationInstance));
}
}
w wygenerowanym pliku helper.cshtml.72cecc2a.cs.
Jak naprawić ten błąd?
Aktualizuj
Istotne części web.config to:
<?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>
Ponieważ już używasz ASP.Net V4, prawdopodobnie nie ma potrzeby stosowania rozdzielczości zaproponowanej w udostępnionym łączu. Spróbuj usunąć odniesienie do "System" i dodaj je ponownie. – Yogi
Usunąłem i ponownie dodałem odniesienie do systemu, ale problem nadal występuje. – Andrus
@Yogi Zaktualizowałem queston i dodaję główną zawartość web.config. Może to lub widoki/web.config można zmienić, aby to naprawić – Andrus