web-dev-qa-db-fra.com

Aucun exécutable trouvé correspondant à la commande "dotnet-aspnet-codegenerator" projet asp.net core 2.1 sous mac

Je suis un tutoriel de https://docs.Microsoft.com/en-us/aspnet/core/tutorials/razor-pages-mac/model?view=aspnetcore-2.1 sur la création d'un noyau asp.net 2.1 projet en mac. En essayant d'échafauder un modèle, j'obtiens une erreur:

Aucune commande correspondante trouvée "dotnet-aspnet-codegenerator"

La plupart des solutions de différents sites Web suggèrent d'utiliser DotNetCliToolReference pour Microsoft.VisualStudio.Web.CodeGeneration.Tools, ce qui n'a pas aidé. Cependant, il est mentionné que tous les DotNetCliToolReference peuvent être supprimés dans asp.net core 2.1 https://docs.Microsoft.com/en-us/aspnet/core/migration/20_21?view=aspnetcore-2.1 . J'ai même essayé d'ajouter DotNetCliToolReference pour Microsoft.VisualStudio.Web.CodeGeneration.Tools avec la version 2.1.0-preview1-final (la dernière version) et 2.0.4, mais il en a résulté une autre erreur:

La version du paquet Microsoft.VisualStudio.Web.CodeGeneration.Tools n'a pas pu être résolue.

Qu'est-ce que je rate? Comment ce problème peut-il être résolu?

Références de colis que j'utilise:

<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>
6
ranjeep

Après avoir parcouru divers sites et utilisé l’aide de développeurs expérimentés, j’ai finalement pu résoudre le problème. J'ai constaté que cet outil de génération de code, utilisé pour l'échafaudage de modèle, devenait un outil global .NET Core CLI dans la version 2.1. Donc, au lieu d’ajouter simplement une référence à un paquet, il devrait être installé globalement. Pour plus de détails, consultez https://github.com/aspnet/Docs/issues/6894 . La commande pour installer l'outil de génération de code globalement est la suivante: 

installation de l'outil dotnet --global dotnet-aspnet-codegenerator

Il installera la dernière version de l'outil de génération de code.

10
ranjeep

Ici, je suis sur la 2.1.4 sur le framework .net core . J'ai donc besoin de la 2.1 de l'outil dotnet-aspnet-codegenerator.

Première hypothèse J'ai décidé de spécifier le framework .net de mon projet, avec un fichier global.json créé: Dotnet new globaljson --sdk-version 2.1.401

Il n'a pas fait ce que je veux: le même résultat que vous trouvez.

Choisir la bonne version du programme d'installation J'ai donc décidé de:

  • Supprimer le premier exécutable installé sur le répertoire .store
  • Installez la version 2.1 de l'outil: dotnet tool install --global dotnet-aspnet-codegenerator --version 2.1.0

Et ça court! :) (pour la version 2.1 bien sûr)

0
evanboissonnot

Comme l'a dit ranjeep:

dotnet tool install --global dotnet-aspnet-codegenerator

Et dans la prochaine étape, vous serez peut-être confronté au fait que le générateur de code, cmd, ne listera pas ses générateurs lorsque vous essayez l'une de ces solutions:

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

La solution consiste également à nommer le projet sur lequel vous souhaitez travailler. Vous devez le faire même si vous travaillez dans la console du gestionnaire de packages avec le bon projet sélectionné dans la liste déroulante. 

Cela fonctionnera:

dotnet-aspnet-codegenerator -h -p "C:\Projects\MyProject.csproj"
0
Jpsy