Kan weergave van controller niet toevoegen in VS 2015: “Er is een fout opgetreden bij het uitvoeren van de geselecteerde codegenerator”

Ik volg een video-tutorial waarin ik een lege ASP.NET Web-toepassing moet maken met MVC, met behulp van Visual Studio 2015, omdat ik nieuw ben in de ASP.NET-wereld, volg ik stap voor stap.

Ik heb mijn project goed gemaakt, volgende stap door een weergave van een bestaande Controllertoe te voegen, ik werd geraakt door een foutmelding in het berichtvenster met de tekst:

Fout:
Er is een fout opgetreden bij het uitvoeren van de geselecteerde codegenerator:
‘Ongeldige aanwijzer (uitzondering op HRESULT:0x80004003(E_POINTER))’

Ik heb het probleem gegoogeld, vergelijkbare problemen gevonden, maar geen enkele leidde tot een duidelijke oplossing. Sommige soortgelijke problemen werden veroorzaakt door de anterieure versie van VisualStudio, maar zoals ik al zei geen enkele met een duidelijke oplossing.

Om te verduidelijken wat ik heb meegemaakt, hier is wat ik stap voor stap heb gedaan:

Een ASP.NET-webtoepassing gekozen:

voer hier de afbeeldingsbeschrijving in

Gekozen lege sjabloon met MVC aangevinkt :

voer hier de afbeeldingsbeschrijving in

Geprobeerd om Add Viewvanaf een controller:

voer hier de afbeeldingsbeschrijving in

Sommige instellingen …

voer hier de afbeeldingsbeschrijving in

De fout:

voer hier de afbeeldingsbeschrijving in

Wat veroorzaakt dit probleem en wat is de oplossing ervoor?

Bijwerken:

Het blijkt dat zelfs door te proberen de weergave handmatig toe te voegen, ik dezelfde fout krijg, het toevoegen van een weergave is op alle mogelijke manieren onmogelijk!


Antwoord 1, autoriteit 100%

Probeer de ComponentModelCache te wissen, de cache wordt opnieuw opgebouwd als VS de volgende keer wordt gestart.

  1. Visual Studio sluiten
  2. Verwijder alles in deze map C:\Users\ [your users name]\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
  3. Visual Studio opnieuw opstarten

14.0 is voor Visual Studio 2015. Dit werkt ook voor andere versies.


Antwoord 2, autoriteit 19%

Ik had dit probleem met een andere foutmelding “-1 is buiten de grenzen van..”

Het enige dat voor mij werkte, was om het project uit de oplossing te verwijderen door met de rechtermuisknop op het project te klikken en ‘Verwijderen’ te selecteren. Klik vervolgens met de rechtermuisknop op de oplossing, Bestaand project toevoegen en selecteer het project om het opnieuw in de oplossing te laden.

Nadat ik het project opnieuw heb geladen, kan ik nu weer views toevoegen.


Antwoord 3, autoriteit 8%

Ik heb dezelfde fout, maar in VS 2017 wanneer ik een controller maak. Ik deed het op dezelfde manier als @sh.alawneh schreef. Ik heb ook geprobeerd te doen wat @longday schreef. Maar het werkte niet. Toen probeerde ik het op een andere manier:

  • Klik met de rechtermuisknop op de doelmap.
  • Kies in de lijst Toevoegen => Nieuw item.

Daar kies ik een nieuwe controller en het werkt prima.

Misschien kan ik iemand helpen.


Antwoord 4, autoriteit 6%

Volg deze stappen om een ​​weergave op een andere manier dan de gebruikelijke manier toe te voegen:

  • 1) Visual Studio openen.
  • 2) Maak/open uw project.
  • 3) Ga naar Solution Explorer.
  • 4) Klik met de rechtermuisknop op de doelmap.
  • 5) Kies in de lijst Toevoegen.
  • 6) Kies uit de lijst met onderliggende items MVC View Page (Razor)of MVC View Page with layout (Razor).
  • 7) Als u de tweede keuze uit de vorige stap selecteert, moet u een lay-outpagina voor uw weergave kiezen in het pop-upvenster.
  • 8) Dat is het!

Als u de door u gemaakte weergave niet kunt openen, klikt u met de rechtermuisknop op het weergavebestand, kiest u Openen meten selecteert u HTML-editor (webformulieren)en vervolgens oke .


Antwoord 5, autoriteit 2%

Klik met de rechtermuisknop op het project onder de oplossing en klik op Project verwijderen,

u zult zien dat het project is verwijderd, dus klik er nu opnieuw op met de rechtermuisknop en druk op project laden

probeer vervolgens je controller toe te voegen


Antwoord 6, autoriteit 2%

In mijn geval hielp het volgende:

  1. Herstart VS
  2. Oplossingsverkenner => Klik met de rechtermuisknop op oplossing => Oplossing herbouwen

Antwoord 7

Laten we aannemen dat je een datacontext in een DLL gebruikt, nou, het was mijn geval, en ik weet niet waarom ik dezelfde fout heb die jij beschrijft, ik los het op door een datacontextLocal te creëren in het backend-project. dan geef ik de Dbset door aan de juiste datacontext en verwijder ik de lokale (je kunt het daar laten als je wilt, kan in de toekomst nuttig zijn

als u klaar bent om het in een lokale datacontext te gebruiken, maakt u een nieuwe en geeft u de Dbset door aan de juiste


Antwoord 8

Controleer in ASP.NET Core of je het nugetpakket Microsoft.VisualStudio.Web.CodeGeneration.Toolshebt en of het overeenkomt met je projectversie.


Antwoord 9

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

Verwijderen uit deze map voor VS 2019 ….


Antwoord 10

Ik heb dit probleem op deze manier opgelost

eerst had ik Entity-frameworks met de nieuwste versie 5.0.5

voer hier de afbeeldingsbeschrijving in

en het codegeneratiepakket met versie 5.0.2

voer hier de afbeeldingsbeschrijving in

dus ik heb zojuist Entity-frameworks verwijderd en versie 5.0.2 geïnstalleerd als hetzelfde voor codegeneratiepakket

en het is gelukt


Antwoord 11

voor het geval iemand geïnteresseerd is – de oplossing met schone cache werkte niet voor mij. maar ik ben erin geslaagd een probleem op te lossen, maar alle .Net-frameworks in het systeem te verwijderen en ze vervolgens één voor één terug te installeren.


Antwoord 12

Ik heb zojuist mijn visuele studio opnieuw opgestart en het werkte.


Antwoord 13

Probeer de ComponentModelCache te wissen,

1.Sluit Visual Studio

2.Verwijder alles in deze map C:\Users\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache

3.Herstart Visual Studio

4.Controleer opnieuw

dit gebruikte ook VS2017 om een ​​oplossing te krijgen


Antwoord 14

Ik kwam een ​​soortgelijk probleem tegen waardoor het genereren van de code niet werkte. Blijkbaar hadden mijn metadata onbekende eigenschappen of waarden. Ik moet toegeven dat ik niet alle antwoorden hier heb geprobeerd, maar wie wil echt een van de vele Nuget-pakketten die worden gebruikt opnieuw installeren of downloaden.

Het opschonen van het project werkte voor mij (Build->Clean Solution) De generator gebruikte een aantal verouderde binaire bestanden om de controller en views te bouwen. Het schoonmaken van de oplossing verwijderde de verouderde binaire bestanden en voilà.


Antwoord 15

Ik probeer me momenteel vertrouwd te maken met MVC 4. Ik ontwikkel al een tijdje met MVC 5, maar ik moet MVC 4 kennen om te studeren voor mijn MCSD-certificering. Ik volg een tutorial via Pluralsight, gericht op veel oudere versies van Entity Framework en MVC (de video is uitgebracht in 2013!)

Ik heb twee uur geleden exact dezelfde fout gemaakt en heb mijn haren uit mijn haar getrokken om erachter te komen wat er mis is. Gelukkig, omdat het project in deze tutorial zinloos is, kon ik tijdens het hele proces een stap achteruit doen om erachter te komen wat de objectreferentie-fout veroorzaakte, en het te repareren.

Wat ik vond was een fout in de structuur van mijn eigenlijke oplossing.

Ik had een MVC-webproject opgezet (‘ASP.NET-webtoepassing (.NET Framework)‘), maar ik had ook 2 klassenbibliotheken, waarvan één mijn gegevenstoegangslaag en een met de domeininstellingen voor modellen die verbinding maken met mijn database.

Deze waren beide van het type ‘Class Library (.NET Standard)‘.

Het MVC-project vond dit niet leuk.

Eens heb ik nieuwe projecten van het type ‘Class Library (.NET Framework)’gemaakt, en alle bestanden van de oude bibliotheken naar de nieuwe gekopieerd en de referentie voor het MVC-webproject, een herbouw en opnieuw proberen stelde me in staat om de View correct te ondersteunen.

Dit lijkt misschien een voor de hand liggende oplossing, plaats geen .NET Standard-project naast een .NET Framework-project en verwacht dat het normaal werkt, maar het kan anderen helpen dit probleem op te lossen!


Antwoord 16

Mijn probleem waren de typen die in de modelklasse werden gebruikt.

De typen als volgt gebruiken:

   [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; }

Werkt niet meer in de codegenerator. Ik moest deze typen en steigers zonder hen verwijderen en ze later toevoegen.

Het is gek, [NotMapped]werkte vroeger bij steigers.

Gebruik de basistypen: int, string, byte, enzovoort, zonder typen zoals: DateTime, List, HttpPostedFileBase enzovoort.


Antwoord 17

Ik heb hier ook mijn hoofd over gebroken, wat ik in mijn geval ontdekte, was dat er een extra sectie was toegevoegd aan mijn Web.config-bestand. Door hier commentaar op te geven en opnieuw op te bouwen, was het probleem opgelost en ik kon nu een nieuwe controller toevoegen.


Antwoord 18

Een eenvoudige VS-herstart werkte voor mij. Ik heb zojuist VS afgesloten en opnieuw opgestart.


Antwoord 19

Geen van deze oplossingen werkte voor mij. Ik heb zojuist Visual Studio bijgewerkt (updates waren beschikbaar) en plotseling werkt het gewoon.


Antwoord 20

Het probleem is opgelost nadat EntityFramework van Nuget Package Manager in mijn project is geïnstalleerd. Bekijk uw projectreferenties die al zijn toegevoegd EntityFramework. Eindelijk kan ik de weergave met sjabloon toevoegen nadat ik EntityFramework aan projectreferentie heb toegevoegd.


Antwoord 21

Het verwijderen van de .vs-map in de oplossingsmap werkte voor mij.


Antwoord 22

Ik werk aan een Core 3-app en kreeg dit probleem bij het toevoegen van een controller. Ik kwam erachter dat het pakket Microsoft.VisualStudio.Web.CodeGeneration.Design is bijgewerkt met een .net 4.x framework-dll. Het updaten van het project naar Core 3.1 loste het probleem op.


Antwoord 23

Ik weet dat dit een heel oud draadje is, maar ik kwam het tegen toen ik aan mijn probleem werkte. De mijne werd veroorzaakt omdat ik een van mijn Modelklassen had hernoemd. Hoewel de app goed is gebouwd en goed werkt, kreeg ik dezelfde foutmelding toen ik probeerde een nieuwe controller toe te voegen. Voor mij heb ik zojuist de klas verwijderd die ik had hernoemd, weer toegevoegd en alles was in orde.


Antwoord 24

Controleer uw databaseverbindingsreeks en als er syntaxisfouten in de appsettings.json zijn, wordt deze fout geretourneerd.


Antwoord 25

Een andere veelvoorkomende oorzaak hiervoor, die wordt gesuggereerd in het bouwlogboek, is dat uw IIS Express Web Server draait terwijl u probeert een steiger te bouwen. Stop/Verlaat uw webserver en probeer de steiger opnieuw te bouwen.

Other episodes