KSwift87
KSwift87

Reputation: 2233

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

I'm trying to generate Identity Account\Login and Account\Register pages in a new project. I've tried both .NET Core 3.1 and .NET 5; in both cases, even when it's a new project, I receive the following error message:

enter image description here

An incredibly helpful error message, as you can tell. Does anybody know what can cause this with .NET Core 3.1 or .NET 5 projects and how to fix it? I've got VS2019 v16.9.5 installed, Microsoft's IdentityServer v.5.0.6, EntityFrameworkCore v.5.0.6, Identity.UI v5.0.6, and CodeGeneration.Design v.5.0.2 all installed for my .NET 5 project, and whatever the default versions of those packages for the new .NET Core 3.1 project. Both projects fail to correctly scaffold the needed files.

Upvotes: 12

Views: 7108

Answers (6)

Pritom Sarkar
Pritom Sarkar

Reputation: 2252

I found a workaround for this error by using the dotnet CLI outside of Visual Studio to execute the scaffolding tool. The following steps use the aspnet-codegenerator tool to scaffold the full Identity pages area into your .Net Core 5 app.

1.Close Visual Studio.

2.Open a command prompt and change directories to the project location.

3.Make sure the aspnet-codegenerator tool is installed on your machine by executing this command:

dotnet tool install -g dotnet-aspnet-codegenerator

4.Add Microsoft.VisualStudio.Web.CodeGeneration.Design package to the project if it does not already exist in your project.

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

5.Run the following command where YourAppName.Models.ApplicationDbContext is the namespace to your DbContext:

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

If the command completed without errors that should have fixed the “There was an error running the selected code generator” issue and created the necessary Identity Pages under Areas/Identity/Pages.

enter image description here

dotnet aspnet-codegenerator also has the ability to scaffold only specific files versus all the Identity files if you don’t need the full set by passing in the -files parameter followed by the files you want to create.

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

Further you need to add following packages in project Microsoft.AspNetCore.Identity.UI,Microsoft.EntityFrameworkCore.Design

Upvotes: 15

puerile
puerile

Reputation: 643

For dotnet 6 just upgrade all identity and ef core related libraries to version 6.x.x. Also the database ef core libraries.

Upvotes: 0

Amara Miloudi
Amara Miloudi

Reputation: 140

For me it solved when update the entity framework core to the latest version

Upvotes: 0

Deni
Deni

Reputation: 41

Closing the project and deleting the bin and obj folders worked in my case.

Upvotes: 4

loco22
loco22

Reputation: 57

Following up on JamieD77's answer, if you have this issue on .net 5, simply downgrade Microsoft.AspNetCore.ApiAuthorization.IdentityServer and Microsoft.AspNetCore.Identity.UI to version 5.0.0. The scaffold will now work.

Upvotes: 3

JamieD77
JamieD77

Reputation: 13949

I ran into this yesterday.

What I had to do was install version 3.1.13 of Microsoft.AspNetCore.ApiAuthorization.IdentityServer and then Microsoft.AspNetCore.Identity.UI and after that, the scaffolding worked in VS2019

All of my AspCoreNet packages were set to 3.1.15 previously.

Upvotes: 2

Related Questions