web-dev-qa-db-fra.com

Impossible d'ajouter une vue du contrôleur dans VS 2015: "Une erreur s'est produite lors de l'exécution du générateur de code sélectionné"

Je suis un didacticiel vidéo dans lequel je dois créer une application ASP.NET Web vide avec MVC, à l'aide de Visual Studio 2015, qui est nouvelle dans le monde ASP.NET et que je suis étape par étape.

Mon projet a bien été créé, étape suivante en ajoutant une vue à partir d'une Controller existante, une erreur dans la boîte de message m'a frappé:

Erreur :
Une erreur s'est produite lors de l'exécution du générateur de code sélectionné: "Pointeur non valide (exception de HRESULT: 0x80004003 (E_POINTER))"

J'ai cherché sur Google le problème, trouvé des problèmes similaires, mais aucun n'a conduit à une solution claire, certains problèmes similaires ont été générés par une version antérieure de VisualStudio, mais comme je l'ai dit aucun avec une solution claire.

Pour clarifier ce que j'ai vécu, voici ce que j'ai fait étape par étape:

Sélection d'une application Web ASP.NET:

 enter image description here

Modèle choisi vide avec contrôle MVC vérifié:

 enter image description here

J'ai essayé de Add View à partir d'un contrôleur:

 enter image description here

Quelques réglages ... 

 enter image description here

L'erreur :

 enter image description here

Quelle est la cause de ce problème et quelle est la solution? 

Mettre à jour :

Il s'avère que même en essayant d'ajouter la vue manuellement, j'obtiens la même erreur. L'ajout d'une vue est impossible!

23
AymenDaoudi

Essayez d'effacer le ComponentModelCache, le cache sera reconstruit lors du prochain lancement de VS.

  1. Fermer Visual Studio
  2. Supprimer tout le contenu de ce dossier C:\Utilisateurs \\ AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
  3. Redémarrer Visual Studio

14.0 est pour Visual Studio 2015. Cela fonctionnera également pour les autres versions.

49
longday

Suivez ces étapes pour ajouter une vue d'une manière différente de celle habituelle: 

  • 1) Ouvrez Visual Studio.
  • 2) Créez/ouvrez votre projet.
  • 3) Accédez à l'Explorateur de solutions.
  • 4) Faites un clic droit sur le dossier cible.
  • 5) Dans la liste, choisissez Ajouter .
  • 6) Dans la liste des enfants, choisissez Page de visualisation MVC (Razor) ou Page de visualisation MVC avec présentation (Razor) .
  • 7) Si vous sélectionnez le deuxième choix de l'étape précédente, vous devez choisir une page de disposition pour votre vue dans la fenêtre contextuelle.
  • 8) C'est ça! 

Si vous ne pouvez pas ouvrir la vue que vous avez créée, cliquez simplement avec le bouton droit de la souris sur le fichier de vue, choisissez Ouvrir avec et sélectionnez Éditeur HTML (formulaires Web) OK. 

5
sh.alawneh

Supposons que vous utilisez un datacontext dans une DLL, eh bien, c'était mon cas et je ne sais pas pourquoi j'ai la même erreur que vous décrivez, je le résous en créant un datacontextLocal sur le projet principal. puis je passe le Dbset au bon datacontext et supprime le local (vous pouvez le laisser si vous voulez, peut être utile dans le futur

si vous êtes prêt à l'utiliser dans le contexte local de données, créez-en un nouveau, puis transmettez le Dbset au correct.

1
sGermosen

juste au cas où quelqu'un serait intéressé - la solution avec cache propre ne fonctionnait pas pour moi. mais j’ai réussi à résoudre un problème en désinstallant tous les frameworks .Net du système, puis en les réinstallant un par un.

0
Leonid

Essayez d'effacer le ComponentModelCache, 

1.Fermer Visual Studio

2. Supprimez tous les éléments de ce dossier C:\Utilisateurs\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache

3. Redémarrez Visual Studio

4.Check à nouveau

cela a également utilisé VS2017 pour obtenir une solution 

0
Deepak Savani

J'essaie actuellement de me familiariser avec MVC 4. Je développe avec MVC 5 depuis un moment, mais j'ai besoin de connaître MVC 4 pour étudier pour obtenir ma certification MCSD. Je suis un tutoriel via Pluralsight, ciblant des versions beaucoup plus anciennes d'Entity Framework et de MVC (la vidéo a été publiée en 2013!).

Je suis tombé sur cette même erreur il y a 2 heures et je me suis arraché les cheveux pour essayer de comprendre ce qui ne va pas. Heureusement, étant donné que le projet de ce didacticiel n’a pas de sens, j’ai pu revenir en arrière tout au long du processus pour déterminer la cause de l’erreur liée à la non-définition de l’objet et le corriger.

Ce que j'ai trouvé était une erreur dans la structure de ma solution actuelle. 

J'avais un projet Web MVC configuré ('Application Web ASP.NET ( .NET Framework )'), mais j'avais également 2 bibliothèques de classe, une contenant ma couche d'accès aux données et l'autre configuration de domaine pour les modèles se connectant à ma base de données.

Ils étaient tous deux de type 'Class Library ( .NET Standard )'.

Le projet MVC n'a pas aimé ça.

Une fois que j'ai créé de nouveaux projets de type 'Bibliothèque de classes ( .NET Framework )', j'ai copié tous les fichiers des anciennes bibliothèques dans les nouvelles et j'ai corrigé la référence du projet Web MVC, une reconstruction. et réessayer m'a permis d'échafauder la vue correctement.

Cela peut sembler une solution évidente. Ne mettez pas un projet .NET Standard à côté d'un projet .NET Framework et attendez-vous à ce qu'il fonctionne normalement, mais cela peut aider les autres à résoudre ce problème!

0
IfElseTryCatch

J'ai la même erreur mais dans VS 2017 lorsque je crée un contrôleur. Je l’ai fait de la même manière que l’a écrit @ sh.alawneh. De plus, j'ai essayé de faire ce que @longday a écrit. Mais ça n'a pas marché. Ensuite, j'essaie d'une autre manière:

  • Faites un clic droit sur le dossier cible. 
  • Dans la liste, choisissez Ajouter => Nouvel élément.

Là j'ai choisi un nouveau contrôleur et cela fonctionne bien. 

Peut-être que je vais aider quelqu'un. 

0
Maksym Labutin

Dans ASP.NET Core, vérifiez si vous avez le package de nuget Microsoft.VisualStudio.Web.CodeGeneration.Tools et qu'il correspond à la version de votre projet.

0
Oleksandr Kyselov

J'ai rencontré un problème similaire qui empêchait la génération de code de fonctionner. Apparemment, mes métadonnées avaient des propriétés ou des valeurs inconnues. Je dois admettre que je n’ai pas essayé toutes les réponses ici, mais qui souhaite réellement réinstaller vs ou télécharger l’un des nombreux packages Nuget utilisés.

Nettoyer le projet a fonctionné pour moi (Build-> Clean Solution) Le générateur utilisait des binaires obsolètes pour créer le contrôleur et les vues. Le nettoyage de la solution a supprimé les fichiers binaires obsolètes et voilà.

0
user3416682

Je viens de redémarrer mon studio visuel et cela a fonctionné.

0
Kurkula