簡體   English   中英

為什么 Visual Studio 2019 16.9.5 中 .NET Core 3.1 和 .NET 5 的腳手架標識失敗?

[英]Why does Scaffolding Identity for .NET Core 3.1 and .NET 5 in Visual Studio 2019 16.9.5 fail?

我正在嘗試在新項目中生成身份帳戶\登錄和帳戶\注冊頁面。 我已經嘗試過 .NET Core 3.1 和 .NET 5; 在這兩種情況下,即使它是一個新項目,我也會收到以下錯誤消息:

在此處輸入圖像描述

如您所知,這是一條非常有用的錯誤消息。 有誰知道 .NET Core 3.1 或 .NET 5 項目會導致這種情況以及如何解決? 我已經為我的 .NET 5 項目安裝了 VS2019 v16.9.5、Microsoft 的 IdentityServer v.5.0.6、EntityFrameworkCore v.5.0.6、Identity.UI v5.0.6 和 CodeGeneration.Design v.5.0.2,以及無論新 .NET Core 3.1 項目的這些軟件包的默認版本是什么。 這兩個項目都未能正確構建所需的文件。

通過使用 Visual Studio 外部的 dotnet CLI 執行腳手架工具,我找到了解決此錯誤的方法。 以下步驟使用 aspnet-codegenerator 工具將完整的身份頁面區域搭建到您的 .Net Core 5 應用程序中。

1.關閉 Visual Studio。

2.打開命令提示符並將目錄更改為項目位置。

3.通過執行以下命令確保您的機器上安裝了 aspnet-codegenerator 工具:

dotnet tool install -g dotnet-aspnet-codegenerator

4.如果項目中不存在 Microsoft.VisualStudio.Web.CodeGeneration.Design package,則將其添加到項目中。

Install-Package Microsoft.VisualStudio.Web.CodeGeneration.Design

5.運行以下命令,其中YourAppName.Models.ApplicationDbContext是 DbContext 的命名空間:

dotnet aspnet-codegenerator identity -dc YourAppName.Models.ApplicationDbContext

如果命令完成且沒有錯誤,則應該修復“運行所選代碼生成器時出錯”問題並在區域/身份/頁面下創建必要的身份頁面。

在此處輸入圖像描述

如果您不需要完整集,則 dotnet aspnet-codegenerator 還可以僅構建特定文件而不是所有身份文件,方法是傳入 -files 參數,后跟要創建的文件。

dotnet aspnet-codegenerator identity -dc MyApp.Models.ApplicationDbContext –files “Account.Register;Account.Login;Account.Logout”

我昨天遇到了這個。

我必須做的是安裝Microsoft.AspNetCore.ApiAuthorization.IdentityServer的 3.1.13 版,然后安裝Microsoft.AspNetCore.Identity.UI ,之后,腳手架在 VS2019 中工作

我所有的 AspCoreNet 包之前都設置為 3.1.15。

跟進 JamieD77 的回答,如果您在 .net 5 上遇到此問題,只需將Microsoft.AspNetCore.ApiAuthorization.IdentityServerMicrosoft.AspNetCore.Identity.UI降級到版本 5.0.0。 腳手架現在可以工作了。

在我的情況下,關閉項目並刪除 bin 和 obj 文件夾。

對我來說,將實體框架核心更新到最新版本時解決了

對於 dotnet 6,只需將所有身份和 ef 核心相關庫升級到版本 6.xx 以及數據庫 ef 核心庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM