コントローラーのスキャフォールディングの項目でエラーが出ます | Server Forum | Tech Stadium Forum

コントローラーのスキャフォールディング...
 
通知
すべてクリア

コントローラーのスキャフォールディングの項目でエラーが出ます  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
04/02/2024 10:54 am  

コントローラーのスキャフォールディングの項目で、
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
というエラーがでます。
アドバイス頂けますでしょうか?


引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
04/02/2024 10:54 am  
ドキュメントにあるコマンドに追加して以下を実行してみてもらえないでしょうか
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

返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
04/02/2024 10:55 am  

教えていただいた対応をしてみましたが、結果は変わりませんでした。
先頭の方のコマンドは見切れていますが、ターミナルログを添付します。
環境に問題があるのかもしれません。
現状の.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


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
04/02/2024 10:56 am  

スキャフォールディングのコマンドエラーですが、理由はわかりませんが解決しました。
エラーをChatGPTに与えて、指定された手順を進めたところ、エラーなくコントローラーが生成されるようになりました。
前回もエラーを与えて試したのですが、何か間違いをしていたようです。お手間を取らせてすいません。


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
04/02/2024 10:56 am  

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
を実行したところ、生成成功しました。


返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
04/02/2024 10:57 am  
なるほど
Microsoft.EntityFrameworkCore.Design
のパッケージの話は Microsoft のドキュメントにもありましたが
どこかのタイミングで
Microsoft.EntityFrameworkCore.Tools
もないとスキャフォールディングのコマンドが通らないようになったのかもしれませんね。
共有ありがとうございます。

返信引用
共有:
タイトルとURLをコピーしました