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>
さまざまなサイトを調査し、上級開発者の助けを借りて、ようやく問題を修正することができました。モデルの足場に使用されるコード生成ツールが、2.1リリースでグローバルな.NET Core CLIツールになることがわかりました。したがって、パッケージ参照を追加するだけでなく、グローバルにインストールする必要があります。詳細については https://github.com/aspnet/Docs/issues/6894 を参照してください。コード生成ツールをグローバルにインストールするコマンドは次のとおりです。
dotnet tool install --global dotnet-aspnet-codegenerator
コード生成ツールの最新バージョンをインストールします。
ランジープが言ったように:
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"
ここでは、フレームワーク.netコアの2.1.4を使用しています。したがって、dotnet-aspnet-codegeneratorツールの2.1が必要です。
最初の仮説作成したglobal.jsonファイルを使用して、プロジェクトの.netフレームワークを指定することにしました:dotnet new globaljson --sdk-version 2.1.401
それは私が望むことをしていませんでした:あなたが見つけたのと同じ結果。
インストーラーの適切なバージョンを選択するだから、私は次のことに決めました:
そしてそれは走っている! :)(もちろん2.1バージョンの場合)