web-dev-qa-db-fra.com

Aucun exécutable trouvé correspondant à la commande 'dotnet-aspnet-codegenerator' "

Lorsque j'essaie d'ajouter un contrôleur dans un projet ASP.NET Core à l'aide de Visual Studio 15 Enterprise avec Update 3, le message d'erreur ci-dessous s'affiche: 

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

58
Darren Alfonso

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

    <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" />
    </ItemGroup>
147
johnnycardy

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 suivants sous outils:

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

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

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

Tout d’abord, mettez tout à jour. Choisissez l'onglet Mises à jour. Cochez la case Tout mettre à jour et exécutez ceci plusieurs fois. Ne soyez pas surpris si certaines choses rétrogradent les premières fois où vous exécutez la mise à niveau. Certaines dépendances semblent devoir être gérées séquentiellement. Il m'a fallu environ 5 mises à jour 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 pouvoir trouver tous les paquets manquants dans NuGet.

6
Josiah

Ajoutez ce qui suit à votre project.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 que vous utilisez dans votre projet.
  • Vous pouvez obtenir une autre erreur à propos de Microsoft.DotNet.InternalAbstractions manquant, 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.
3
Darren Alfonso
  1. J'ai dû ajouter ce qui suit à mon fichier CSProj:

<ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild3-final" />
    <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0-msbuild3-final" />
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0-msbuild3-final" />
</ItemGroup>

  1. Après avoir ajouté, j’ai installé CodeGenerators.Mvc avec le gestionnaire de paquets Nuget.

  2. J'avais toujours une erreur disant qu'il ne pouvait pas trouver un fichier dans le dossier MCD, j'ai donc dû copier et coller tout le dossier bin\Debug\netcoreapp1.1 dans bin\MCD\Debug\netcoreapp1.1

J'ai couru l'échafaudage et ça a fonctionné!

2
Tyrone Moodley

Dans Dotnet Core 2.1.1, vous vous attendriez à ce que la situation ait changé et vous n'aurez peut-être pas besoin d'ajouter grand chose. Je suis désolé de vous agacer, mais la situation est la même et il ne vous reste plus qu'à mettre à jour votre version de l'outil ou du package que vous souhaitez utiliser.

 <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
</ItemGroup>

Cela a fonctionné pour moi. J'espère que cela fonctionnera pour tous les autres qui resteront coincés ici. Notez que la référence de clé est DotNetCliToolReference pas PackageReference

2
Oge Nwike

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 Program.cs, 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.

2
Heikegani

Pour le Mac (OS X), je devais exécuter:

dotnet tool install --global dotnet-aspnet-codegenerator --version 2.2.1

Puis j'ai ajouté à mon .zshrc (ou son équivalent bash)

export PATH=$HOME/.dotnet/tools:$PATH

Et je devais m'assurer de redémarrer Terminal.

1
Paul

Ajoutez simplement la balise 'DotNetCliToolReference' et la conception du code de package sur .csproj et exécutez la commande code-generate sur la solution racine . Cela a fonctionné pour moi.

.csproj <ItemGroup> <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.3" /> </ItemGroup> 

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

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 construire et de restaurer la solution après l'ajout du paquet;)

1
Michelle Rodrigues

Pour VS 2015, fichier project.json - 

sous dépendances ajouter - 

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

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

Je viens de taper sous Linux:

~/.dotnet/tools/dotnet-aspnet-codegenerator razorpage -m Movie -dc RazorPagesMovieContext -udl -outDir Pages/Movies --referenceScriptLibraries

Donc, je n'ai pas commencé avec 'dotnet' (ma version actuelle: 2.2.300)

Je n'aime pas cette solution, mais cela a fonctionné.

0
Rob Lassche

Dans Visual Studio Code, changez votre yourproject.csproj

<pre>
<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.4" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.6" PrivateAssets="All" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" version= "2.1.0-preview1-final" />
    <PackageReference Include="Microsoft.Extensions.SecretManager.Tools" version= "2.0.2" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
  </ItemGroup>
  <ItemGroup>
  <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.2" />
  <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" version="2.1.0-preview1-final" />
  </ItemGroup>`enter code here`
</pre>
0
kasif Shaikh