webentwicklung-frage-antwort-db.com.de

Ansicht von Controller kann in VS 2015 nicht hinzugefügt werden: "Fehler beim Ausführen des ausgewählten Codegenerators"

Ich verfolge ein Video-Tutorial, in dem ich eine leere ASP.NET Web-Anwendung erstellen muss, bei der MVC mit Visual Studio 2015 neu in der ASP.NET-Welt ist.

Ich habe mein Projekt gut erstellt. Als nächsten Schritt fügte ich eine Ansicht aus einem vorhandenen Controller hinzu. Ich wurde von einem Messagebox-Fehler betroffen:

Error :
Beim Ausführen des ausgewählten Codegenerators ist ein Fehler aufgetreten: "Ungültiger Zeiger (Ausnahme von HRESULT: 0x80004003 (E_POINTER))"

Ich googelte das Problem, fand ähnliche Probleme, aber keine führte zu einer klaren Lösung. Einige ähnliche Probleme wurden von der anterioren Version von VisualStudio ausgegeben, aber wie gesagt, keine mit einer klaren Lösung.

Um zu klären, was ich erlebt habe, habe ich Schritt für Schritt getan:

Eine ASP.NET-Webanwendung ausgewählt:

 enter image description here

Ausgewählte leere Vorlage mit aktivierter MVC:

 enter image description here

Versuchte Add View von einem Controller aus:

 enter image description here

Einige Einstellungen ... 

 enter image description here

Der Fehler :

 enter image description here

Was ist das Problem und was ist die Lösung dafür? 

Update:

Es stellt sich heraus, dass selbst beim Versuch, die Ansicht manuell hinzuzufügen, derselbe Fehler angezeigt wird. Das Hinzufügen einer Ansicht ist auf alle Arten unmöglich!

23
AymenDaoudi

Löschen Sie den ComponentModelCache. Der Cache wird beim nächsten Start von VS neu erstellt.

  1. Schließen Sie Visual Studio
  2. Löschen Sie alles in diesem Ordner C:\Users \\ AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
  3. Starten Sie Visual Studio neu

14.0 ist für Visual Studio 2015. Dies funktioniert auch für andere Versionen.

49
longday

Führen Sie die folgenden Schritte aus, um eine Ansicht auf andere Weise als auf die übliche Weise hinzuzufügen: 

  • 1) Öffnen Sie Visual Studio.
  • 2) Erstellen/öffnen Sie Ihr Projekt.
  • 3) Gehen Sie zum Projektmappen-Explorer.
  • 4) Klicken Sie mit der rechten Maustaste auf den Zielordner.
  • 5) Wählen Sie aus der Liste Add .
  • 6) Wählen Sie aus der untergeordneten Liste MVC-Ansichtsseite (Rasierer) oder MVC-Ansichtsseite mit Layout (Razor) .
  • 7) Wenn Sie die zweite Auswahl aus dem vorherigen Schritt auswählen, sollten Sie eine Layoutseite für Ihre Ansicht aus dem Popup-Fenster auswählen.
  • 8) Das ist es! 

Wenn Sie die von Ihnen erstellte Ansicht nicht öffnen können, klicken Sie einfach mit der rechten Maustaste auf die Ansichtsdatei, wählen Sie Öffnen mit und wählen Sie HTML (Webformulare) - Editor und dann OK. 

5
sh.alawneh

Nehmen wir an, Sie verwenden einen Datenkontext in einer DLL. Nun, es war mein Fall, und ich weiß nicht, warum ich den gleichen Fehler habe, den Sie beschreiben. dann übergebe ich das Dbset an den korrekten datacontext und lösche den lokalen (Sie können es dort lassen, wenn Sie möchten, kann in der Zukunft hilfreich sein

wenn Sie bereit sind, es im lokalen Datenkontext zu verwenden, erstellen Sie einen neuen und übergeben Sie das Dbset an das richtige

1
sGermosen

Ich hatte dieses Problem mit einer anderen Fehlermeldung "-1 ist außerhalb der Grenzen von .."

Das einzige, was für mich funktionierte, war das Entfernen des Projekts aus der Projektmappe, indem Sie mit der rechten Maustaste auf das Projekt klicken und "Entfernen" auswählen. Klicken Sie dann mit der rechten Maustaste auf die Projektmappe, und wählen Sie das Projekt aus, um es erneut in die Projektmappe zu laden.

Nach dem erneuten Laden des Projekts kann ich jetzt wieder Ansichten hinzufügen.

1
lucky.expert

nur für den Fall, dass jemand interessiert ist - die Lösung mit sauberem Cache hat bei mir nicht funktioniert. Ich habe es jedoch geschafft, ein Problem zu lösen, deinstallierte jedoch alle .Net-Frameworks im System und installierte sie dann nacheinander.

0
Leonid

Versuchen Sie, den ComponentModelCache zu löschen. 

1.Schließen Sie Visual Studio

2.Löschen Sie alles in diesem Ordner C:\Users\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache

3.Starten Sie Visual Studio neu

4.Überprüfen Sie erneut

dies nutzte auch VS2017, um eine Lösung zu erhalten 

0
Deepak Savani

Ich versuche gerade, mich mit MVC 4 vertraut zu machen. Ich habe eine Zeitlang mit MVC 5 gearbeitet, aber ich muss MVC 4 kennen, um meine MCSD-Zertifizierung zu erlernen. Ich verfolge ein Tutorial über Pluralsight, das auf viel ältere Versionen von Entity Framework und MVC abzielt (das Video wurde 2013 veröffentlicht!).

Ich habe vor genau zwei Stunden genau diesen Fehler gemacht und habe mir die Haare herausgerissen, um herauszufinden, was falsch ist. Glücklicherweise konnte ich, da das Projekt in diesem Tutorial bedeutungslos ist, im gesamten Prozess zurückgehen, um herauszufinden, was den Objektreferenzfehler nicht verursacht hat, und es zu beheben.

Was ich fand, war ein Fehler in der Struktur meiner tatsächlichen Lösung. 

Ich hatte ein MVC-Webprojekt eingerichtet ('ASP.NET-Webanwendung ( .NET Framework )'), aber ich hatte auch 2 Klassenbibliotheken, eine mit meiner Datenzugriffsebene und eine mit der Domäneneinrichtung für Modelle, die eine Verbindung zu meiner Datenbank herstellen.

Dies waren beide vom Typ 'Class Library ( .NET Standard )'.

Das MVC-Projekt hat das nicht gefallen.

Nachdem ich neue Projekte des Typs 'Class Library ( .NET Framework )' erstellt und alle Dateien aus den alten Bibliotheken in die neuen kopiert und die Referenz für das MVC-Webprojekt repariert hatte, wurde ein Neustart durchgeführt Wiederholungsversuch erlaubte mir, die Ansicht korrekt zu rüsten.

Dies kann wie ein naheliegender Fix erscheinen. Legen Sie kein .NET-Standardprojekt neben einem .NET-Framework bereit und erwarten Sie, dass es normal funktioniert, aber es kann anderen helfen, dieses Problem zu beheben!

0
IfElseTryCatch

C:\Users\{WindowsUser}\AppData\Local\Microsoft\VisualStudio\16.0_8183e7d1\ComponentModelCache

Aus diesem Ordner entfernen für VS 2019 ....

0
Farzad Sepehr

Ich habe den gleichen Fehler aber in VS 2017, wenn ich einen Controller erstelle. Ich habe es genauso gemacht wie @ sh.alawneh. Ich habe auch versucht, das zu tun, was @longday geschrieben hat. Aber es hat nicht funktioniert. Dann versuche ich es anders:

  • Klicken Sie mit der rechten Maustaste auf den Zielordner. 
  • Wählen Sie in der Liste Hinzufügen => Neue Position.

Dort wähle ich einen neuen Controller und es funktioniert gut. 

Vielleicht helfe ich jemandem. 

0
Maksym Labutin

Ich habe mir auch bei diesem den Kopf zerkratzt. In meiner Instanz stellte ich fest, dass ein zusätzlicher Abschnitt zu meiner Datei "Web.config" hinzugefügt wurde. Das Auskommentieren und Neuaufbau löste das Problem und ich konnte nun einen neuen Controller hinzufügen.

0
Icementhols

Überprüfen Sie in ASP.NET Core, ob Sie über das Paket Microsoft.VisualStudio.Web.CodeGeneration.Tools Nuget verfügen, das Ihrer Projektversion entspricht.

0

Ich stieß auf ein ähnliches Problem, das die Codegenerierung verhinderte. Anscheinend hatten meine Metadaten unbekannte Eigenschaften oder Werte. Ich muss zugeben, dass ich nicht alle Antworten ausprobiert habe, aber wer wirklich die VN neu installieren oder eines der zahlreichen verwendeten Nuget-Pakete herunterladen möchte.

Die Reinigung des Projekts hat für mich funktioniert (Build-> Clean Solution) Der Generator verwendete einige veraltete Binärdateien, um den Controller und die Ansichten zu erstellen. Durch das Säubern der Lösung wurden die veralteten Binärdateien und voilà entfernt.

0
user3416682

Mein Problem waren die in der Modellklasse verwendeten Typen.

Verwenden Sie die Typen wie folgt:

    [NotMapped]
    [Display(Name = "Image")]
    public HttpPostedFileBase ImageUpload { get; set; }


    [NotMapped]
    [Display(Name = "Valid from")]
    public Nullable<DateTime> Valid { get; set; }


    [NotMapped]
    [Display(Name = "Expires")]
    public Nullable<DateTime> Expires { get; set; }

Funktioniert nicht mehr im Code Generator. Ich musste diese Typen und Gerüste ohne sie entfernen und später hinzufügen.

Es ist dumm, [NotMapped] arbeitete beim Gerüstbau.

Verwenden Sie die Basistypen: int, string, byte usw. ohne die folgenden Typen: DateTime, List, HttpPostedFileBase usw.

0
Rusty Nail

Ich habe gerade mein Visual Studio neu gestartet und es hat funktioniert.

0
Kurkula