Не найдено исполняемого файла, соответствующего команде dotnet-aspnet-codegenerator asp.net core 2.1 project в mac

Я следую руководству от https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages-mac/model?view=aspnetcore-2.1 о создании проекта asp.net core 2.1 в mac. При попытке построить модель я получаю сообщение об ошибке:

Не найдено исполняемого файла, соответствующего команде "dotnet-aspnet-codegenerator"

Большинство решений на разных веб-сайтах предлагают использовать DotNetCliToolReference для Microsoft.VisualStudio.Web.CodeGeneration.Tools, что не помогло. Однако упоминается, что все DotNetCliToolReference можно удалить в asp.net core 2.1 https://docs.microsoft.com/en-us/aspnet/core/migration/20_21?view=aspnetcore-2.1. Я даже пытался добавить DotNetCliToolReference для Microsoft.VisualStudio.Web.CodeGeneration.Tools с версией 2.1.0-preview1-final (последняя версия) и 2.0.4, но это привело к другой ошибке:

Версия пакета Microsoft.VisualStudio.Web.CodeGeneration.Tools не может быть определена.

Что мне не хватает? Как решить эту проблему?

Ссылки на пакеты, которые я использую:

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.0" />
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.1.0-preview1-final" />
</ItemGroup>

person ranjeep    schedule 02.07.2018    source источник


Ответы (3)


После просмотра различных сайтов и помощи старших разработчиков я, наконец, смог решить проблему. Я обнаружил, что инструмент генерации кода, используемый для построения модели, стал глобальным инструментом интерфейса командной строки .NET Core в версии 2.1. Таким образом, вместо того, чтобы просто добавлять ссылку на пакет, он должен быть установлен глобально. Для получения дополнительных сведений см. https://github.com/aspnet/Docs/issues/6894. Команда для глобальной установки инструмента генерации кода:

установка инструмента dotnet --global dotnet-aspnet-codegenerator

Он установит последнюю версию инструмента генерации кода.

person ranjeep    schedule 02.07.2018

Как сказал Ранджип:

dotnet tool install --global dotnet-aspnet-codegenerator

И на следующем шаге вы можете столкнуться с тем, что cmd генератора кода не будет перечислять свои генераторы, когда вы попробуете что-либо из этого:

dotnet aspnet-codegenerator -h
dotnet-aspnet-codegenerator -h

Решение состоит в том, чтобы также назвать проект, над которым вы хотите работать. Вы ДОЛЖНЫ делать это ДАЖЕ, если вы работаете в консоли диспетчера пакетов с правильным проектом, выбранным в раскрывающемся списке.

Это будет работать:

dotnet-aspnet-codegenerator -h -p "C:\Projects\MyProject.csproj"
person Jpsy    schedule 28.01.2019
comment
Он работает без первого тире ... Вся официальная документация включает dotnet-asp .... - person iamnicoj; 01.04.2021

Здесь я использую 2.1.4 на ядре framework .net. Итак, мне нужна 2.1 инструмента dotnet-aspnet-codegenerator.

Первая гипотеза Я решил указать структуру .net моего проекта, создав файл global.json: dotnet new globaljson --sdk-version 2.1.401

Он сделал не то, что я хотел: тот же результат, что и вы.

Выбор хорошей версии установщика Итак, я решил:

  • Удалите первый установленный исполняемый файл в каталоге .store
  • Установите версию 2.1 инструмента: dotnet tool install --global dotnet-aspnet-codegenerator --version 2.1.0

И он работает! :) (для версии 2.1 конечно)

person evanboissonnot    schedule 10.12.2018