Pas de fichiers exécutables correspond à la commande "dotnet-aspnet-codegenerator'"
Lorsque vous essayez d'ajouter un Contrôleur dans un ASP.NET projet Core à l'aide de Visual Studio 15 de l'Entreprise 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'"
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez csproj (Visual Studio 2017) au lieu de projet.json, alors vous devez ajouter les lignes suivantes à votre fichier csproj:
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Tools
il a créé un<PackageReference>
, mais j'avais besoin d'un<DotNetCliToolReference>
comme johnnycardy répondu ici... Un avantage dedotnet add package
est que (il me semble?) elle permet de trouver et d'ajouter un élément avec la dernière version de l'attribut, donc j'ai juste manuellement converti à partir<PackageReference>
-><DotNetCliToolReference>
Pour la version la plus récente dans le cadre du projet.json ajoutez la ligne suivante dans les dépendances:
et les suivantes en vertu des outils:
Une plus forte réponse que de copier les numéros de version dans votre fichier de configuration à utiliser NuGet pour s'assurer que les paquets sont ajoutés à votre projet.
Outils -> Gestionnaire de Package NuGet -> Gérer les Packages NuGet pour la Solution.
Tout d'abord, obtenir le tout à jour. Choisissez l'onglet Mises à jour. Cochez la case pour mettre à Jour et exécuter ce à quelques reprises. Ne soyez pas surpris si certains trucs abaissement de la premier couple de fois que vous exécutez la mise à niveau. Certaines dépendances semblent devoir être traitées de manière séquentielle. Il m'a fallu environ 5 mises à niveau pour obtenir le tout à jour.
Puis, dans l'onglet parcourir, rechercher
CodeGeneration.Tools
. L'installer. Faire de même pourCodeGenerators.Mvc
. Comme vous l'avez trouver plus de messages d'erreur, vous devriez être capable de trouver tous les paquets manquants dans NuGet.CodeGeneration.Tools
à mon projet:Package 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.1' has a package type 'DotnetCliTool' that is not supported by project
Dotnet de base 2.1.1 vous attendons à ce que la situation a changé et vous ne pouvez pas besoin d'en mettre beaucoup. Je suis désolé de vous embêter, 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 de package que vous souhaitez utiliser.
Cela a fonctionné pour moi. J'espère que cela fonctionne pour eveyone d'autre que de rester coincé ici. Notez que la clé de référence est
DotNetCliToolReference
pasPackageReference
Si vous utilisez Mac (OS X) ou une distribution de Linux, vous devez exécuter:
En outre, sur Mac, j'ai ajouté à mon
.zshrc
(ou bash équivalent)Et j'ai eu à faire assurez-vous de redémarrer le Terminal.
Ajouter les lignes suivantes à votre projet.json:
En vertu de dépendances:
Sous outils:
HTML:
Après l'ajout que j'ai installé CodeGenerators.Mvc avec le gestionnaire de package nuget.
J'étais encore une erreur en disant qu'il ne peut pas trouver un fichier dans la base de données de dossier j'ai donc eu qu'à copier et coller l'ensemble de bin\Debug\netcoreapp1.1 dossier bin\MCD\Debug\netcoreapp1.1
J'ai couru l'échafaudage et cela a fonctionné!
J'ai rencontré le même problème dans Visual Studio Mac de la Communauté de l'Édition 2017. Avant l'exécution de la
scaffold
commande à partir du répertoire du projet, assurez-vous que le répertoire a laProgram.cs
,Startup.cs
et.csproj
fichiers. si non, puis exécutez la commandels-al
et puiscd
dans le répertoire du projet qui serait à l'intérieur de votre répertoire du projet en cours, puis d'exécuter lascaffold
de commande. Une erreur évidente beaucoup négligent.Juste ajouter une balise 'DotNetCliToolReference" et le code du package de conception sur .csproj et d'exécuter du code à générer de commande sur la racine de la solution. C'est travaillé 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 restaurer une solution après avoir ajouter le package 😉
Pour VS 2015 dans le cadre du projet.fichier json -
en vertu de dépendances ajoutez -
puis sous outils add-
Dans le Code de Visual Studio modifier votre votreprojet.csproj
J'ai juste tapé dans Linux:
Donc, je n'ai pas commencé avec "dotnet" (mon version actuelle: 2.2.300)
Je n'aime pas cette solution, mais cela a fonctionné.