コントローラーのスキャフォールディングの項目で、
dotnet aspnet-codegenerator controller -name TodoItemsController -async -api -m TodoItem -dc TodoContext -outDir Controllers
を実行すると、
To scaffold controllers and views using models, install Entity Framework core packages and try again: Microsoft.EntityFrameworkCore.Tools
というエラーがでます。
アドバイス頂けますでしょうか?
dotnet tool install --global dotnet-ef # もしくは dotnet tool update --global dotnet-ef # 上記を実施したのち dotnet ef # のコマンドが通ることを確認 # そして dotnet tool install --global dotnet-aspnet-codegenerator # 上記実行済みなら代わりに dotnet tool update --global dotnet-aspnet-codegenerator # さらに追加で dotnet add package Microsoft.EntityframeworkCore.Design dotnet add package Microsoft.EntityframeworkCore.Sqlite dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design dotnet add package Microsoft.EntityFrameworkCore.SqlServer # ここまで実施してから、ドキュメントにある下記を実行 dotnet aspnet-codegenerator controller -name TodoItemsController -async -api -m TodoItem -dc TodoContext -outDir Controllers
教えていただいた対応をしてみましたが、結果は変わりませんでした。
先頭の方のコマンドは見切れていますが、ターミナルログを添付します。環境に問題があるのかもしれません。
現状の.NETインストール状況は下記となります。
PS E:\School\TECHSTADIUM\Server\workspace\ts_srv_stu_202312\10_Kadai\01_Srv_Day2\TodoApi> dotnet --info
.NET SDK:
Version: 8.0.100
Commit: 57efcf1350
Workload version: 8.0.100-manifests.6c33ef20ランタイム環境:
OS Name: Windows
OS Version: 10.0.19045
OS Platform: Windows
RID: win-x64
Base Path: C:\Program Files\dotnet\sdk\8.0.100\インストール済みの .NET ワークロード:
Workload version: 8.0.100-manifests.6c33ef20
表示するインストール済みワークロードはありません。Host:
Version: 8.0.0
Architecture: x64
Commit: 5535e31a71.NET SDKs installed:
5.0.404 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk].NET runtimes installed:
Microsoft.AspNetCore.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.25 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.22 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 5.0.13 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]Other architectures found:
x86 [C:\Program Files (x86)\dotnet]Environment variables:
Not setglobal.json file:
Not found
スキャフォールディングのコマンドエラーですが、理由はわかりませんが解決しました。
エラーをChatGPTに与えて、指定された手順を進めたところ、エラーなくコントローラーが生成されるようになりました。
前回もエラーを与えて試したのですが、何か間違いをしていたようです。お手間を取らせてすいません。
chatGPTいわく、
aspnet-codegeneratorでのエラーは、Entity Framework Coreのパッケージが見つからないため
として下記のコマンドの実行を促されました。dotnet add package Microsoft.EntityFrameworkCore.Toolsこのあとに再度
dotnet aspnet-codegenerator controller -name TodoItemsController -async -api -m TodoItem -dc TodoContext -outDir Controllers
を実行したところ、生成成功しました。
Microsoft.EntityFrameworkCore.Design
どこかのタイミングで
Microsoft.EntityFrameworkCore.Tools
共有ありがとうございます。