aspnet-codegenerator 身份列表选项导致脚手架失败错误

aspnet-codegenerator identity list option result in scaffolding failed error

浏览本教程Scaffold Identity in ASP.NET Core projects

我按照写的做了所有事情,所以这里是重现的步骤:

  1. 创建一个 .net 核心项目(使用 vs 2019 命名为 "DotNetCorePlayGround")。

  2. 从包管理器控制台 运行 这个命令:

    dotnet tool install -g dotnet-aspnet-codegenerator

  3. 并且:

    dotnet add dotnetcoreplayground package Microsoft.VisualStudio.Web.CodeGeneration.Design dotnet add dotnetcoreplayground package Microsoft.EntityFrameworkCore.Design dotnet add dotnetcoreplayground package Microsoft.AspNetCore.Identity.EntityFrameworkCore dotnet add dotnetcoreplayground package Microsoft.AspNetCore.Identity.UI dotnet add dotnetcoreplayground package Microsoft.EntityFrameworkCore.SqlServer dotnet add dotnetcoreplayground package Microsoft.EntityFrameworkCore.Tools

一切都按预期进行,结果是:

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.3" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.1.3" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.3">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.3" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.3">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.2" />
  </ItemGroup>

问题在于此行(仅尝试列出 Identity scaffolder 选项):

dotnet aspnet-codegenerator identity -h

结果是:

dotnet : Scaffolding failed.
At line:1 char:1
+ dotnet aspnet-codegenerator identity -h p C:\Users\[user]\sou ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Scaffolding failed.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

Could not find project file in C:\Users\[user]\source\repos\DotnetCoreplayGround

知道为什么找不到项目文件吗?

我试过 运行:

dotnet aspnet-codegenerator -help 并得到 脚手架失败错误。 问题是我的 .config 文件夹被删除了(我不知道为什么)...

我是如何解决问题的:

我在其中创建了一个新的 .config 文件夹和一个新的 dotnet-tools.json 文件。

文件内容:

{
  "version": 1,
  "isRoot": true,
  "tools": {
    "dotnet-ef": {
      "version": "3.1.3",
      "commands": [
        "dotnet-ef"
      ]
    },
    "dotnet-aspnet-codegenerator": {
      "version": "3.1.1",
      "commands": [
        "dotnet-aspnet-codegenerator"
      ]
    }
  }
}

然后转到终端 运行 dotnet 工具恢复。

就是这样!