web-dev-qa-db-ja.com

Macでコマンド "dotnet-aspnet-codegenerator" asp.net core 2.1プロジェクトに一致する実行可能ファイルが見つかりません

ASPの作成について https://docs.Microsoft.com/en-us/aspnet/core/tutorials/razor-pages-mac/model?view=aspnetcore-2.1 のチュートリアルに従っていますMacの.net core 2.1プロジェクト。モデルを足場にしようとすると、エラーが発生します。

コマンド「dotnet-aspnet-codegenerator」に一致する実行可能ファイルが見つかりません

さまざまなWebサイトのソリューションのほとんどは、役に立たなかったMicrosoft.VisualStudio.Web.CodeGeneration.ToolsにDotNetCliToolReferenceを使用することを推奨しています。ただし、すべてのDotNetCliToolReferenceはasp.netコア2.1で削除できると記載されています https://docs.Microsoft.com/en-us/aspnet/core/migration/20_21?view=aspnetcore-2.1 。バージョン2.1.0-preview1-final(最新バージョン)および2.0.4のMicrosoft.VisualStudio.Web.CodeGeneration.ToolsにDotNetCliToolReferenceを追加してみましたが、別のエラーが発生しました。

パッケージのバージョンMicrosoft.VisualStudio.Web.CodeGeneration.Toolsを解決できませんでした。

何が欠けていますか?この問題はどのように解決できますか?

私が使用しているパッケージ参照:

<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>
8
ranjeep

さまざまなサイトを調査し、上級開発者の助けを借りて、ようやく問題を修正することができました。モデルの足場に使用されるコード生成ツールが、2.1リリースでグローバルな.NET Core CLIツールになることがわかりました。したがって、パッケージ参照を追加するだけでなく、グローバルにインストールする必要があります。詳細については https://github.com/aspnet/Docs/issues/6894 を参照してください。コード生成ツールをグローバルにインストールするコマンドは次のとおりです。

dotnet tool install --global dotnet-aspnet-codegenerator

コード生成ツールの最新バージョンをインストールします。

18
ranjeep

ランジープが言ったように:

dotnet tool install --global dotnet-aspnet-codegenerator

そして、次のステップでは、コードジェネレーターcmdがこれらのいずれかを試してもそのジェネレーターをリストしないという事実に直面する可能性があります。

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

解決策は、作業するプロジェクトにも名前を付けることです。ドロップダウンで適切なプロジェクトを選択してパッケージマネージャーコンソールで作業している場合でも、これを行う必要があります。

これは動作します:

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

ここでは、フレームワーク.netコアの2.1.4を使用しています。したがって、dotnet-aspnet-codegeneratorツールの2.1が必要です。

最初の仮説作成したglobal.jsonファイルを使用して、プロジェクトの.netフレームワークを指定することにしました:dotnet new globaljson --sdk-version 2.1.401

それは私が望むことをしていませんでした:あなたが見つけたのと同じ結果。

インストーラーの適切なバージョンを選択するだから、私は次のことに決めました:

  • .storeディレクトリに最初にインストールされた実行可能ファイルを削除します
  • ツールの2.1バージョンをインストールします。dotnet tool install --global dotnet-aspnet-codegenerator --version 2.1.0

そしてそれは走っている! :)(もちろん2.1バージョンの場合)

0
evanboissonnot