wake-up-neo.com

Keine ausführbaren Dateien gefunden, die mit dem Befehl 'dotnet-aspnet-codegenerator' übereinstimmen. "

Wenn ich versuche, einen Controller in einem ASP.NET Core-Projekt mit Visual Studio 15 Enterprise mit Update 3 hinzuzufügen, erhalte ich den folgenden Fehler: 

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

58
Darren Alfonso

Wenn Sie csproj (Visual Studio 2017) anstelle von project.json verwenden, müssen Sie der csproj-Datei Folgendes hinzufügen:

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

Fügen Sie für die neueste Version in project.json die folgenden Abhängigkeiten hinzu:

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

und die folgenden unter tools:

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

Eine zuverlässigere Antwort als das Kopieren von Versionsnummern in Ihre Konfigurationsdatei ist die Verwendung von NuGet, um sicherzustellen, dass die Pakete Ihrem Projekt hinzugefügt werden. 

Tools -> NuGet Package Manager -> Verwalten von NuGet Packages für Solution.

Zuerst alles auf den neuesten Stand bringen. Wählen Sie die Registerkarte Updates. Aktivieren Sie das Kontrollkästchen Alle aktualisieren, und führen Sie dies einige Male aus. Seien Sie nicht überrascht, wenn einige Dinge beim ersten Durchführen des Upgrades heruntergestuft werden. Einige Abhängigkeiten müssen sequenziell behandelt werden. Ich brauchte ungefähr 5 Upgrades, um alles auf den neuesten Stand zu bringen.

Suchen Sie dann auf der Registerkarte Durchsuchen nach CodeGeneration.Tools. Es installieren. Machen Sie dasselbe für CodeGenerators.Mvc. Wenn Sie zusätzliche Fehlermeldungen finden, sollten Sie eventuell fehlende Pakete in NuGet finden.

6
Josiah

Fügen Sie Ihrem project.json Folgendes hinzu:

Unter Abhängigkeiten:

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

Unter Tools:

"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
    "version": "1.0.0-preview2-final",
    "imports": [
        "portable-net45+win8"
    ]
}
  • Die Versionsnummer kann sich abhängig von der in Ihrem Projekt verwendeten .NET Core-Version ändern
  • Möglicherweise erhalten Sie eine weitere Fehlermeldung, dass Microsoft.DotNet.InternalAbstractions fehlt. In diesem Fall müssen Sie sich von NuGet informieren
  • Stellen Sie sicher, dass die Version "Microsoft.VisualStudio.Web.CodeGeneration.Tools" in den Abhängigkeiten mit der Version "Microsoft.VisualStudio.Web.CodeGeneration.Tools" in den Tools übereinstimmt
3
Darren Alfonso
  1. Ich musste meiner CSProj-Datei Folgendes hinzufügen:

<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. Nach dem Hinzufügen habe ich CodeGenerators.Mvc mit dem Nuget Package Manager installiert.

  2. Ich habe immer noch eine Fehlermeldung erhalten, die besagt, dass im Ordner MCD keine Datei gefunden werden kann. Daher musste ich den gesamten Ordner bin\Debug\netcoreapp1.1 in bin\MCD\Debug\netcoreapp1.1 kopieren und einfügen

Ich lief das Gerüst und es hat funktioniert!

2
Tyrone Moodley

In dotnet core 2.1.1 erwarten Sie, dass sich die Situation geändert hat und Sie möglicherweise nicht viel hinzufügen müssen. Es tut mir leid, Sie zu ärgern, aber die Situation ist dieselbe und Sie müssen jetzt nur noch Ihre Version des Tools oder Pakets, das Sie verwenden möchten, aktualisieren.

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

Das hat bei mir funktioniert. Ich hoffe, es funktioniert für alle anderen, die hier stecken bleiben. Beachten Sie, dass die Schlüsselreferenz DotNetCliToolReference nicht PackageReference ist.

2
Oge Nwike

In Visual Studio Mac Community Edition 2017 ist dasselbe Problem aufgetreten. Stellen Sie vor dem Ausführen des Befehls scaffold im Projektverzeichnis sicher, dass das Verzeichnis die Dateien Program.cs, Startup.cs und .csproj enthält. Wenn nicht, dann führen Sie den Befehl ls-al und dann cd in das Projektverzeichnis ein, das sich in Ihrem aktuellen Projektverzeichnis befindet, und führen Sie dann den Befehl scaffold aus. Ein offensichtlicher Fehler, den viele übersehen.

2
Heikegani

Für den Mac (OS X) musste ich Folgendes ausführen:

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

Dann fügte ich zu meinem .zshrc (oder bash äquivalent) hinzu

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

Und ich musste dafür sorgen, dass Terminal neu gestartet wurde.

1
Paul

Fügen Sie einfach das Tag 'DotNetCliToolReference' und das Paketcode-Design in .csproj hinzu und/ Ausführen des Befehls zum Generieren des Codes auf der Root-Lösung . Das hat für mich gearbeitet.

.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>

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

Vergessen Sie nicht, eine Lösung nach dem Hinzufügen eines Pakets zu erstellen und wiederherzustellen;)

1

Für VS 2015 in der Datei project.json - 

unter Abhängigkeiten hinzufügen - 

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

dann unter tools add- 

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

Ich habe gerade Linux eingegeben:

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

Also habe ich nicht mit 'dotnet' angefangen (meine aktuelle Version: 2.2.300)

Ich mag diese Lösung nicht, aber es hat funktioniert.

0
Rob Lassche

Ändern Sie in Visual Studio Code Ihr Projekt.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