Подтвердить что ты не робот

Невозможно добавить представление с контроллера в VS 2015: "Произошла ошибка с запуском генератора кода"

Я следую видеоуроку, где мне требуется создать пустую ASP.NET Web приложение с MVC, используя Visual Studio 2015, будучи новым для мира ASP.NET, я следую шаг за шагом.

Я получил свой проект хорошо, на следующем шаге, добавив представление из существующего Controller, я получил ошибку сообщения, говоря:

Ошибка:
Произошла ошибка с запуском генератора кода: 'Недопустимый указатель (исключение из HRESULT: 0x80004003 (E_POINTER))'

Я решил проблему, нашел похожие проблемы, но ни одна из них не привела к ясному решению, некоторые аналогичные проблемы, выпущенные в предыдущей версии VisualStudio, но, как я уже сказал, не имеют четкого решения.

Чтобы прояснить, что я испытал, вот что я сделал шаг за шагом:

Выбрано веб-приложение ASP.NET:

введите описание изображения здесь

Выбранный пустой шаблон с проверкой MVC:

введите описание изображения здесь

Попробовал Add View от контроллера:

введите описание изображения здесь

Некоторые настройки...

введите описание изображения здесь

Ошибка:

введите здесь описание изображения

Что вызывает эта проблема и каково ее решение?

Обновление:

Оказывается, что даже пытаясь добавить "Просмотр вручную", я получаю ту же ошибку, добавление представления - все это невозможно!

4b9b3361

Ответ 1

Попробуйте очистить ComponentModelCache, кеш будет перестраиваться в следующий раз, когда запускается VS.

  • Закрыть Visual Studio
  • Удалить все в этой папке C:\Users\\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache
  • Перезапустить Visual Studio

14.0 для визуальной студии 2015. Это будет работать и для других версий.

Ответ 2

Выполните следующие шаги, чтобы добавить представление по-другому, чем обычный способ:

  • 1) Откройте Visual studio.
  • 2) Создайте/откройте свой проект.
  • 3) Перейдите в Обозреватель решений.
  • 4) Щелкните правой кнопкой мыши на целевой папке.
  • 5) Из списка выберите Добавить.
  • 6) Из списка дочерних элементов выберите Страница просмотра MVC или Страница просмотра MVC с макетом (Razor).
  • 7) Если вы выберете второй вариант с предыдущего шага, вы должны выбрать страницу макета для своего вида из всплывающего окна.
  • 8) Что это!

Если вы не можете открыть созданное представление, просто щелкните правой кнопкой мыши на файле вида, выберите Открыть с помощью и выберите редактор HTML (веб-форм), тогда хорошо,

Ответ 3

У меня возникла эта проблема с другим сообщением об ошибке "-1 выходит за пределы.."

Единственное, что сработало для меня, - это удалить проект из решения, щелкнув правой кнопкой мыши проект и выбрав "Удалить". Затем щелкните правой кнопкой мыши решение, добавьте существующий проект и выберите проект, чтобы загрузить его в решение.

После перезагрузки проекта я могу снова добавить представления.

Ответ 4

Предположим, вы используете datacontext в DLL, ну, это был мой случай, и я не знаю, почему у меня такая же ошибка, которую вы описываете, я решаю ее создание datacontextLocal в проекте backend. то я передаю Dbset в правильный datacontext и удаляю локальный (вы можете оставить его там, если хотите, может быть полезным в будущем

если вы готовы использовать его в локальном datacontext, создайте новый, а затем передайте Dbset в правильный

Ответ 5

У меня такая же ошибка, но в VS 2017, когда я создаю контроллер. Я сделал так же, как написал @sh.alawneh. Кроме того, я попытался сделать то, что написал @longday. Но это не сработало. Тогда я пытаюсь по-другому:

  • Щелкните правой кнопкой мыши на целевой папке.
  • Из списка выберите Добавить => Новый элемент.

Там я выбираю новый контроллер, и он работает нормально.

Может быть, я помогу кому-то.

Ответ 6

на всякий случай кого-то интересует - решение с чистым кешем не работает для меня. но мне удалось решить проблему, но деинсталлировать все .Net-структуры в системе, а затем установить их обратно один за другим.

Ответ 7

Я просто перезапустил свою визуальную студию, и это сработало.

Ответ 8

Попробуйте очистить ComponentModelCache,

1. Закройте Visual Studio

2. Удалите все в этой папке C:\Users\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache

3. Перезагрузите Visual Studio

4. Проверьте еще раз

это также использовало VS2017, чтобы получить решение

Ответ 9

В ASP.NET Core проверьте, есть ли у вас пакет nuget Microsoft.VisualStudio.Web.CodeGeneration.Tools и соответствует ли он вашей версии проекта.

Ответ 10

Я столкнулся с подобной проблемой, которая мешала генерации кода работать. По-видимому, мои метаданные имели неизвестные свойства или значения. Я должен признать, что я не пробовал все ответы здесь, но кто действительно хочет переустановить vs или загрузить любой из многочисленных используемых пакетов Nuget.

Очистка проекта сработала для меня (Build-> Clean Solution) Генератор использовал несколько устаревших двоичных файлов для построения контроллера и представлений. Очистка раствора удалила устаревшие двоичные файлы и вуаля.

Ответ 11

В настоящее время я пытаюсь ознакомиться с MVC 4. Я некоторое время разрабатывал MVC 5, но мне нужно знать MVC 4, чтобы подготовиться к сертификации MCSD. Я следую учебному пособию через Pluralsight, ориентированному на гораздо более старые версии Entity Framework и MVC (видео было выпущено в 2013 году!)

Я столкнулся с той же самой ошибкой 2 часа назад и рвал на себе волосы, пытаясь понять, что не так. К счастью, поскольку проект в этом уроке не имеет смысла, я смог сделать шаг назад в течение всего процесса, чтобы выяснить, что было причиной того, что объект ref не установил ошибку, и исправить ее.

То, что я обнаружил, было ошибкой в структуре моего фактического решения.

У меня был настроен веб-проект MVC ("ASP.NET Web Application (.NET Framework)"), но у меня также было 2 библиотеки классов, одна из которых содержала мой уровень доступа к данным, а другая - настройку домена для моделей, подключающихся к моей базе данных.,

Оба они были типа "Библиотека классов (.NET Standard)".

Проект MVC не понравился.

После того, как я создал новые проекты типа "Библиотека классов (.NET Framework)", скопировал все файлы из старых библиотек в новые и исправил ссылку на веб-проект MVC, повторная сборка и повтор позволили мне создать представление правильно.

Это может показаться очевидным исправлением: не помещайте проект.NET Standard вместе с проектом.NET Framework и ожидайте, что он будет работать нормально, но это может помочь другим решить эту проблему!

Ответ 12

Моя проблема заключалась в типах, используемых в модельном классе.

Используя Типы как это:

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

Больше не работает в генераторе кода. Мне пришлось удалить эти типы и строительные леса без них, а затем добавить их позже.

Это глупо, [NotMapped] используется для работы при строительстве лесов.

Используйте базовые типы: int, string, byte и т.д. Без таких типов, как: DateTime, List, HttpPostedFileBase и т.д.

Ответ 13

Я тоже почесал голову этим, в моем случае я обнаружил, что в мой файл Web.config был добавлен дополнительный раздел. Комментирование этого и перестройка решили проблему, и теперь я смог добавить новый контроллер.

Ответ 14

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

Удалить из этой папки для VS 2019....

Ответ 15

Простой перезапуск VS работал для меня. Я просто закрыл VS и перезапустил.

Ответ 16

Ни одно из этих решений не помогло мне. Я только что обновил Visual Studio (обновления были доступны), и вдруг он просто работает.