In ASP.NET MVC 4.5.2 Framework.
nach dem Tippen
@Html.LabelFor()
or
@Html.EditorFor()
im Hinblick auf
Ich erhalte die Fehlermeldung: Der Typ 'Ausdruck <>' ist in einer Assembly definiert, auf die nicht verwiesen wird. Sie müssen einen Verweis auf die Assembly 'System.Core, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' hinzufügen.
Ich habe die Assemblyreferenz System.Core.dll, Version 4.0.0.0, Runtime Version v4.0.30319 hinzugefügt. und auch ich habe in web.config
asp.net-mvc
asp.net-mvc-5.1
Mansoor
quelle
quelle
Antworten:
Ich bin in der gleichen Ausgabe wie Sie gelaufen, wenn auch viel später. Das Problem war, dass ich nicht auf Razor-Ansichten (.cshtml) zugreifen konnte, da eine Fehlermeldung angezeigt wurde, dass eine Assembly-Referenz fehlte
System.Web.Mvc
, obwohl diese in den Projektreferenzen enthalten war. Nach der Untersuchung habe ich festgestellt, dass die installierte NuGet-Version 5.2.3 war, während für das Projekt 5.2.0 erforderlich war. Die Lösung besteht darin, die MVC-Version herunterzustufen.Bestätigen Sie alle Dialoge und Sie können loslegen.
quelle
Ich bin nicht sicher, ob Sie dieses Problem noch haben oder nicht, aber ich hatte das gleiche Problem auch.
Hier konnte ich die Lösungen finden
/programming/6496223/compilation-error-in-net-4-0-web-config-linq-not-found
Ich hoffe das hilft..
quelle
Dieser Fehler bedeutet, dass Visual Studio die System.Web.Mvc-Assembly nicht finden kann, um ihre Intellisense für Razor-Ansichten zu aktivieren. Möglicherweise ist eine oder beide der folgenden Maßnahmen erforderlich, um das Problem zu beheben.
[root] /Web.config:
Projekteigenschaften:
[Ordner anzeigen] /web.config:
Eigenschaften der MVC-Baugruppenreferenz:
quelle
quelle
Ich habe die meisten davon ausprobiert. Schließlich hat es für mich funktioniert, das Projekt zu entladen, die csproj-Datei zu bearbeiten und Folgendes hinzuzufügen:
https://stackoverflow.com/a/38371981/2335660
quelle
Das Löschen der Datei [projectName] .csproj.user aus dem Projektverzeichnis hat mir geholfen.
quelle
Ich hatte genau das gleiche Problem und keine der Lösungen hat das Problem behoben. Ich musste dies in mein Inneres
web.config
einfügenSystem.Web
Ich hatte es entfernt, als ich etwas von der
config
Umgebung gewechselt hatte .quelle
In meinem Fall wurde diese Meldung nur angezeigt, wenn Resharper aktiviert war. Ich habe den Resharper-Cache geleert, VS neu gestartet, Resharper ausgeschaltet und wieder eingeschaltet. Die Nachricht ist verschwunden.
quelle
In Web.config musste ich Folgendes ändern:
zu
quelle
targetFramework
in the<httpRuntime>
und hatte<compilation>
. Durch einfaches Aktualisieren des Attributs, um die .NET Framework-Version des Projekts korrekt wiederzugeben, wurde es für mich behoben.Überprüfen Sie, ob die Build-Aktion für die cshtml-Datei auf "Inhalt" eingestellt ist.
Ich verwende ReSharper und habe festgestellt, dass die generierte Datei beim Aufrufen der Vorlage aus irgendeinem Grund standardmäßig "Keine" ist.
quelle
Ich hatte das gleiche Problem mit der fehlenden Assembly und es kam vor, dass der VS2017-Build diese nicht ordnungsgemäß in den Bin-Ordner kopiert hat. Diese Schritte haben mir geholfen:
aus diesem Kommentar: CS0012: Der Typ '##### Jeder Typ #####' wird in einer Assembly definiert, auf die nicht verwiesen wird
quelle
Fügen Sie Web.config (im Stammverzeichnis) Folgendes hinzu. Ich habe absolut alles von früheren Vorschlägen ausprobiert und nichts hat funktioniert, bis ich das Folgende gefunden habe. Hoffe, es wird Zeit für jemand anderen sparen.
Ich verwende targetFramework = "4.6.1", ändere es jedoch auf die Version, die Sie verwenden, wenn es anders ist.
quelle
Fügen Sie die Datei System.Core.dll manuell zum Ordner bin hinzu. Starten Sie VS neu und erstellen Sie das Projekt . Für mich gelöst
Hatte Designfehler in allen Ansichten auf @ HTML-Helfern und auf meinen Kendo-Gittern.
Das Hinzufügen der System.Core-Assembly in Web.config hat weder zu einem Downgrade der MVC-Version geführt. Und Fehler beim Versuch, manuell einen Verweis auf System.Core hinzuzufügen:
Stellen Sie sicher, dass TargetFramework in den Projekteigenschaften mit dem in project web.config übereinstimmt.
Screenshot des Bin-Ordners
quelle
Für mich gab es im Projektmenü die Option "C # 6.0 / VB 14 aktivieren". Die Auswahl dieser Option hat den Trick getan. Zuvor habe ich versucht, die Datei web.config zu ändern, Visual Studio neu zu starten usw., wie in diesem Beitrag vorgeschlagen.
quelle
Ich hatte das gleiche Problem. Grundsätzlich besteht das Problem darin, eine andere Version von zu verwenden
System.Web.Mvc
. Also das Beste, was Sie öffnen solltenTools > Nuget Package Manager > Manage Nuget Packages for Solution
. Sie können wahrscheinlichSystem.Web.Mvc
auf derCosolidate
Registerkarte sehen. Ein Upgrade oder Downgrade wäre die beste Option. Wenn Sie das neueste .NET-Framework verwenden, das derzeit verfügbar ist.Net 4.6.1
, sollten Sie alleSystem.Web.Mvc
Versionen auf aktualisieren5.2.4.0
. Viel Glück!quelle
Nun, ich habe es behoben, indem ich die Assembly-Referenz in /Views/web.config korrigiert habe . Siehe Abbildung:
quelle
Löschen Sie das Verzeichnis bin, .vs und obj. Nachdem Sie Ihr Projekt im Visual Studio erstellt haben.
quelle
Dies geschah mit einer meiner Ansichten - allen anderen ging es gut. Ich habe folgendes gemacht:
quelle
Das Neustarten von Visual Studio hat bei mir funktioniert.
quelle
quelle
Versuchen Sie hinzuzufügen
using system.Linq.Expressions;
quelle
Ich hatte auch dieses Problem. Das Ändern
targetFramework="4.5.2"
intargetFramwork="4.5"
in der Datei web.config hat das Problem behoben.quelle
Wenn Sie dies nur in einer oder zwei CSHTML-Dateien erhalten ... ist es eine beschädigte Datei.
Ich habe dies mit einer beschädigten Datei geschehen lassen, die einige versteckte Unicode-Zeichen enthält. Versuchen Sie, den gesamten Text des Dokuments in eine neue Editor-Instanz zu kopieren. Löschen Sie den Inhalt der Originaldatei und speichern Sie ... Wenn die Dateilänge> 0 ist, ist etwas schief.
Löschen Sie die Datei und speichern Sie Ihre Editor-Instanz über der alten Version. Alle Fehler gingen für mich weg.
Ich habe dies in meiner Lösung einige Male erlebt. Ich bin mir nicht sicher, was es verursacht, aber ich vermute, es ist Resharper , wenn es anfängt, riesige Erinnerungsstücke in den Abgrund zu schlucken.
Bin ich der einzige, der eine Hassliebe zu Resharper hat?
quelle
Dies kann verursacht werden, wenn Ihre Lösung mehrere Projekte enthält, die nicht alle auf dieselbe Version von .NET Framework abzielen. Wenn Ihr Web-App-Projekt beispielsweise auf .NET 4.5 abzielt und Sie einen Assemblyverweis auf ein anderes Projekt in der Lösung haben, das auf .NET 4.5.2 abzielt. Um dies zu beheben, müssen Sie Ihre Projekte so ändern, dass alle auf dieselbe Version von .NET Framework abzielen.
quelle
Wenn keine der Antworten funktioniert, verwenden Sie diese. Ich stand vor dem gleichen Problem! Tatsächlich fehlte / wurde die Datei configuration.cs im Migrationsordner gelöscht. Ich habe den Migrationsordner gelöscht und auch die Migrationstabelle aus der Datenbank gelöscht. Als Nächstes wurden in der Package Manager Console (PM) die folgenden Befehle verwendet:
Dieser Prozess hat die Datei configuration.cs neu erstellt und alles hat perfekt funktioniert!
quelle
Überprüfen Sie Ihre Projekteigenschaften, um das Zielframework zu erhalten. Ich habe dieses Problem in meinem Projekt durch Matching für mein Zielframework behoben. .NET Framework 4.6.1 MVC 5.2.3 war die passende Lösung. Ich habe diese MVC-Version von NuGet erhalten.
quelle
In meinem Fall bestand die Lösung darin, den ConnectionString in die Web.Config zu verschieben. Diese Anweisung sollte nach dem Abschnitt AppSettings stehen.
quelle
Ich habe ALLE oben genannten Schritte ausgeführt und am Ende festgestellt, dass das, was es für mich löst (auf einer .net Framework 4.7.1-Site mit MVC 5.2.4), dies in die root-Datei web.config innerhalb von
<compilation>
- hinzufügt.quelle