Aucun exécutable trouvé correspondant à la commande ‘dotnet-aspnet-codegenerator’ “

Lorsque vous essayez d’append un contrôleur dans un projet ASP.NET Core à l’aide de Visual Studio 15 Enterprise avec la mise à jour 3, j’obtiens l’erreur ci-dessous:

"The was an error running the selected code generator: No executables found matching command 'dotnet-aspnet-codegenerator'"

Si vous utilisez csproj (Visual Studio 2017) au lieu de project.json, vous devez append les éléments suivants dans votre fichier csproj:

     

Pour la dernière version, dans project.json, ajoutez les éléments suivants sous dépendances:

 "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { "version": "1.1.0-preview4-final", "type": "build" }, "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": { "type": "build", "version": "1.1.0-preview4-final" } 

et les outils suivants sous:

 "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { "version": "1.1.0-preview4-final", "imports": [ "portable-net45+win8" ] } 

Une réponse plus robuste que la copie des numéros de version dans votre fichier de configuration consiste à utiliser NuGet pour vous assurer que les packages sont ajoutés à votre projet.

Outils -> Gestionnaire de packages NuGet -> Gérer les packages NuGet pour la solution.

Tout d’abord, mettez tout à jour. Choisissez l’onglet Mises à jour. Cochez la case Update All et lancez-la plusieurs fois. Ne soyez pas surpris si certains éléments rétrogradent les deux premières fois que vous exécutez la mise à niveau. Certaines dépendances semblent devoir être traitées séquentiellement. Il m’a fallu environ 5 améliorations pour que tout soit à jour.

Ensuite, dans l’onglet Parcourir, recherchez CodeGeneration.Tools . Installez-le. Faites la même chose pour CodeGenerators.Mvc . Lorsque vous trouvez des messages d’erreur supplémentaires, vous devriez être en mesure de trouver tous les packages manquants dans NuGet.

Ajoutez ce qui suit à votre projet.json:

Sous dépendances:

 "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": { "version": "1.0.0-preview2-final", "type": "build" } 

Sous outils:

 "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { "version": "1.0.0-preview2-final", "imports": [ "portable-net45+win8" ] } 
  • Le numéro de version peut changer en fonction de la version de .NET Core utilisée dans votre projet
  • Vous pouvez obtenir une autre erreur concernant Microsoft.DotNet.InternalAbstractions manquante, auquel cas vous devrez vous procurer NuGet
  • Assurez-vous que la version “Microsoft.VisualStudio.Web.CodeGeneration.Tools” dans les dépendances correspond à la version “Microsoft.VisualStudio.Web.CodeGeneration.Tools” dans les outils

J’ai rencontré le même problème dans Visual Studio Mac Community Edition 2017. Avant d’exécuter la commande scaffold partir du répertoire du projet, assurez-vous que le répertoire contient les fichiers .csproj , Startup.cs et .csproj . sinon, exécutez la commande ls-al puis cd dans le répertoire du projet qui se trouverait dans votre répertoire de projet actuel, puis exécutez la commande scaffold . Une erreur évidente que beaucoup oublient.

  1. J’ai dû append ce qui suit à mon fichier CSProj:
      

Ajoutez simplement le tag ‘DotNetCliToolReference’ et la conception du code du package sur .csproj et exécutez la commande de génération de code sur la solution racine . Thats a travaillé pour moi.

.csproj

...

Commande PS C:\Users\miche\projetos\asp_net_core\crud> dotnet aspnet-codegenerator controller -name ProdutosController -m Produto -dc AppDataContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries

N’oubliez pas de créer et de restaurer la solution après l’ajout du package;)

Dans dotnet core 2.1.1, vous vous attendez à ce que la situation change et que vous n’ayez pas besoin d’en append beaucoup. Je suis désolé de vous ennuyer mais la situation est la même et tout ce que vous devez faire maintenant est de mettre à jour votre version de l’outil ou du package que vous souhaitez utiliser.

     

Cela a fonctionné pour moi. J’espère que cela fonctionne pour tout le monde qui rest coincé ici. Notez que la référence de clé est DotNetCliToolReference pas PackageReference

Pour VS 2015, dans le fichier project.json –

sous dépendances append –

 "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { "version": "1.0.0-preview2-final", "imports": [ "portable-net45+win8" ] }, "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.0.0-preview2-final" 

puis sous outils append

 "Microsoft.VisualStudio.Web.CodeGeneration.Tools": { "version": "1.0.0-preview2-final", "imports": [ "portable-net45+win8" ] }