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

Я установил 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)


person user3497702    schedule 26.04.2020    source источник


Ответы (10)


У меня тоже была эта проблема, но следующий ответ сработал для меня. Выберите «Управление пакетами 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" />
person Akın Kaplan    schedule 01.05.2020

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

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

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

person user3497702    schedule 26.04.2020
comment
Это сработало, в одиночку, для меня ... .NET Core 5, приложение Razor Pages, создание CRUD-кода для модели. - person IdahoB; 12.03.2021

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

person Daisy    schedule 06.05.2020
comment
Это было полезно. Я удалил строку в моем csproj, а затем установил из командной строки Nuget. Ошибка исчезла. - person Rich; 11.04.2021

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

Моя установка: Во-первых, установка моего проекта была другой. У меня были 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" /> 

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

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

person chethandb    schedule 30.01.2021

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

person jeanie77    schedule 23.09.2020

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

person Chaitanya Krishna    schedule 17.01.2021

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

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

person Tanvir Moghal    schedule 08.03.2021

У меня была аналогичная ошибка во время входа в систему 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
person bartek1724    schedule 11.03.2021

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

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

<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 проект

<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" />

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

person Omar Shawqy    schedule 04.05.2021

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

person Ezekiel IIX    schedule 16.06.2021