Произошла ошибка при запуске выбранного генератора кода:

Я установил VS 2019 на свои окна 10. Создан базовый веб-проект ASP.net -> Выбранный API. Когда я пытаюсь создать контроллер, ссылающийся на модель и создавший класс контекста, он не генерирует класс контроллера, но выдает следующую ошибку:

Ошибка, произошла ошибка при запуске выбранного генератора кода

'Необработанное исключение. System.IO.FileNotFoundException: не удалось загрузить файл или сборку Microsoft.VisualStudio.Web.CodeGeneration.Utils, Version=3.1.2.0, Culture= нейтральный, PublicKeyToken=adb9793829ddae60. Система не может найти указанный файл. Имя файла: 'Microsoft.VisualStudio.Web.CodeGeneration.Utils, Version=3.1.2.0, Culture= нейтральный, PublicKeyToken=adb9793829ddae60' в Microsoft.VisualStudio.Web.CodeGeneration.Design.Program.Main(String[] args)

13 ответов

У меня тоже была эта проблема, но следующий ответ сработал для меня. Выберите "Управление пакетами Nuget" и установите эти пакеты.

<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration" Version="3.1.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.2" ExcludeAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Utils" Version="3.1.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGenerators.Mvc" Version="3.1.2" />

Чтобы решить эту проблему, вы можете щелкнуть проект правой кнопкой мыши и выбрать "Управление пакетами Nuget".

Затем найдите Microsoft.VisualStudio.Web.CodeGeneratio.Utils, затем установите его.

После установки вышеуказанного он генерируется без ошибок.

Пожалуйста, проверьте, все ли у вас включены в совместимую версию. Это может произойти, если у вас есть пакеты разных версий, одна из которых не поддерживает текущую функциональность / тип проекта.

Сначала проверьте свой файл csproj. Нет ссылки на пакет для Microsoft.VisualStudio.Web.CodeGeneration.Utils, Version=3.1.2.0. Вот почему появляется сообщение об ошибке "Не удалось загрузить файл или сборку". Легко решить. https://www.nuget.org/packages/Microsoft.VisualStudio.Web.CodeGeneration.Utils/ Перейдите в консоль диспетчера пакетов и установите его.

В моем решении был проект .Data и еще один проект .API. Контроллер действий с автоматическим формированием шаблонов пытался добавить Microsoft.VisualStudio.Web.CodeGeneration.Design до версии v5.0.2 . Мне пришлось понизить все мои пакеты nuget до 5.0.2 следующим образом:

- Проект данных:

- проект API

<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.2"> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.2"> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.2" />

Затем контроллер действий API с EF core dbcontext смог успешно добавить:

<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" />

Надеюсь, это поможет! Всего наилучшего.

Как бы то ни было, у меня сработало приведенное ниже решение.

Моя настройка: Во-первых, настройка моего проекта была другой. У меня были MyProject.Data и MyProject, и я пытался добавить «Контроллер API с действиями, используя Entity Framework» в свою папку API в MyProject, и я получал указанную ошибку. Я использовал .net 3.1.

Решение: мне пришлось отказаться от всех нижеперечисленных пакетов nuget, установленных в проекте MyProject.Data.

      Before downgrade:
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.2">
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.2">


 After downgrade:
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.11">
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.11">

Затем попытался снова использовать строительные леса, и это сработало !!

После создания каркаса MyProject установил следующие версии пакета nuget:

      <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.11" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.11"/>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.4" /> 

Основная проблема заключалась в том, что не отображалось никаких ошибок, кроме той, которая отображается в диалоговом окне или даже не указывает нам на какие-либо журналы или какую-либо полезную документацию. Если кто-нибудь найдет его, приложите его к этому ответу. Это было очень неприятно, и это почти съело полдня моих выходных :(

Надеюсь, это кому-то поможет. Удачного кодирования !!

В моем решении было 5 проектов (2 библиотеки DLL, веб-сервис, db и MVC). Я удалил все, кроме проекта MVC, и проблема исчезла. Добавил все проекты обратно, и проблема не вернулась. Сравнение старого файла решения с новым показало множество изменений, трудно сказать, какое изменение было исправлением, но файл решения намного чище.

В моем случае я обновляю зависимости только для той же версии, и это работает :)

Я просто обновляю все пакеты NuGet, установленные в моем проекте, и он работает отлично.

Проверьте и посмотрите, есть ли у вас какие-либо предупреждения о типах, допускающих значение NULL. Если вы это сделаете, вы можете обновить свой «ProjectName».csproj и удалить строку: включить сборку проекта и повторить попытку.

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

Я тоже столкнулся с той же проблемой. Это проблема с разными версиями пакетов NuGet. просто попробуйте использовать похожие версии пакетов.

Microsoft.VisualStudio.Web.CodeGeneration.Utils(5.0.2)Microsoft.VisualStudio.Web.CodeGeneration.Design(5.0.2)

У меня было аналогичное поведение, но с другой версией пакета: "Microsoft.VisualStudio.Web.CodeGeneration.Utils, Version=3.1.4.0". Пакет уже установлен (как в "Управлении пакетами NUGet", так и в файле.csproj). Я удалил его из управления пакетами NUGet и переустановил. Это решило мою проблему.

У меня была аналогичная ошибка во время входа в систему ovveride Identity и макета регистрации. Я удалил все пакеты из Application.Web и снова установил. Мои переустановленные библиотеки из пакетов NuGet:

      Microsoft.AspNetCore.Authentication.Google
Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore
Microsoft.AspNetCore.Identity.EntityFrameworkCore
Microsoft.AspNetCore.Identity.UI
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.VisualStudio.Web.CodeGeneration.Design
Другие вопросы по тегам