it-swarm.com.de

Keine ausführbare Datei mit dem Befehl "dotnet-aspnet-codegenerator" gefunden

Ich folge einem Tutorial von https://docs.Microsoft.com/de-de/aspnet/core/tutorials/razor-pages-mac/model?view=aspnetcore-2.1 zum Erstellen eines asp.net-Kerns 2.1 projekt in mac. Beim Versuch, ein Modell zu rüsten, erhalte ich eine Fehlermeldung:

Keine ausführbare Datei gefunden, die mit dem Befehl "dotnet-aspnet-codegenerator" übereinstimmt.

Die meisten Lösungen auf verschiedenen Websites empfehlen die Verwendung von DotNetCliToolReference für Microsoft.VisualStudio.Web.CodeGeneration.Tools, die nicht geholfen haben. Es wird jedoch erwähnt, dass alle DotNetCliToolReference in asp.net core 2.1 https://docs.Microsoft.com/en-us/aspnet/core/migration/20_21?view=aspnetcore-2.1 entfernt werden können. Ich habe sogar versucht, DotNetCliToolReference für Microsoft.VisualStudio.Web.CodeGeneration.Tools mit der Version 2.1.0-preview1-final (der neuesten Version) und 2.0.4 hinzuzufügen, was jedoch zu einem anderen Fehler führte:

Version für Paket Microsoft.VisualStudio.Web.CodeGeneration.Tools konnte nicht aufgelöst werden.

Was vermisse ich? Wie kann dieses Problem gelöst werden?

Paketreferenzen, die ich verwende:

<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

Nachdem ich durch verschiedene Websites gegangen war und die Hilfe von erfahrenen Entwicklern verwendet hatte, konnte ich das Problem endlich beheben. Ich fand heraus, dass das Code-Generierungs-Tool, das zum Scaffolding von Modellen verwendet wird, in der Version 2.1 zu einem globalen .NET Core-CLI-Tool wurde. Statt nur eine Paketreferenz hinzuzufügen, sollte sie global installiert werden. Weitere Informationen finden Sie unter https://github.com/aspnet/Docs/issues/6894 . Der Befehl zum globalen Installieren des Code-Generierungs-Tools lautet: 

dotnet tool install --global dotnet-aspnet-codegenerator

Es wird die neueste Version des Code-Generierungs-Tools installiert.

10
ranjeep

Hier bin ich auf 2.1.4 auf dem Framework .net Core .__ Also brauche ich die 2.1 des Tools dotnet-aspnet-codegenerator.

Erste Hypothese Ich habe mich entschlossen, das .net-Framework meines Projekts mit einer global.json-Datei anzugeben: Dotnet new globaljson --sdk-version 2.1.401

Es hatte nicht getan, was ich wollte: dasselbe Ergebnis, wie Sie finden.

Auswahl der guten Version des Installationsprogramms Deshalb habe ich mich entschieden:

  • Entfernen Sie die erste installierte ausführbare Datei im .store-Verzeichnis
  • Installieren Sie die Version 2.1 des Tools: dotnet tool install --global dotnet-aspnet-codegenerator - version 2.1.0

Und es läuft! :) (für die 2.1-Version natürlich)

0
evanboissonnot

Wie Ranjeep sagte:

dotnet tool install --global dotnet-aspnet-codegenerator

Im nächsten Schritt werden Sie möglicherweise mit der Tatsache konfrontiert, dass der Codegenerator cmd seine Generatoren nicht auflistet, wenn Sie einen der folgenden Schritte ausführen:

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

Die Lösung besteht darin, auch das Projekt zu benennen, an dem Sie arbeiten möchten. Sie MÜSSEN dies AUSSEHEN, wenn Sie in der Package Manager Console mit dem richtigen Projekt in der Dropdown-Liste arbeiten. 

Das wird funktionieren:

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