Microsoft.VisualStudio.Web.CodeGeneration.Design não foi encontrado pela ferramenta dotnet aspnet-codegenerator

Aug 16 2020

Acabei de criar um aplicativo MVC com dotnet new mvc --name test-project( netcoreapp3.1), sem qualquer tipo de acesso ao banco de dados e identidade, que gostaria de adicionar manualmente para fins de personalização. Então, adicionei alguns pacotes para usar a dotnet aspnet-codegeneratorferramenta. Minha .csprojaparência é esta:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RootNamespace>test_project</RootNamespace>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.4" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.7" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.1.7" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.7" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.7">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.7">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.4" />
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL.Design" Version="1.1.0" />
  </ItemGroup>
</Project>

Como você pode ver, Microsoft.VisualStudio.Web.CodeGeneration.Designé o primeiro da lista. No entanto, quando tento executar qualquer scaffolder da dotnet aspnet-codegeneratorferramenta (por exemplo dotnet aspnet-codegenerator identity -h:), recebo a seguinte mensagem:

No code generators are available in this project.Add Microsoft.VisualStudio.Web.CodeGeneration.Design package to the project as a NuGet package reference.

Mesmo se eu especificar o .csprojarquivo com o -psinalizador, ainda recebo a mesma mensagem. Ao fazer algumas pesquisas, encontrei este problema no repositório, mas é uma coisa diferente: o OP estava tentando adicionar o scaffolder a um aplicativo .NET Core 3.0 usando a versão do scaffolder 3.1.

Estou usando o dotnet 3.1.401 no Xubuntu 20.04.

Alguma ideia? Agradeço antecipadamente.

EDIT 1 Algumas pessoas sugeriram que isso seria parecido com o que temos aqui , mas a questão é: eu sei o que faz e na verdade adicionei as "ferramentas globais" sugeridas naquele artigo. O problema é que aspnet-codegeneratornão estou detectando que já tenho a biblioteca necessária para suas coisas, adicionada ao .csprojarquivo.

EDITAR 1

Aparentemente, algumas pessoas também estão enfrentando esse problema, então, eu apresentei um problema em seu repo

Respostas

1 Blondu Nov 21 2020 at 07:37

Isso já tem alguns meses, mas eu encontrei recentemente para todos os meus projetos.

Caso alguém apareça nesta página, a solução no meu caso (MAC OS), foi desinstalar e reinstalar dotnet-aspnet-codegenerator.

Executar no terminal:

dotnet tool uninstall --global dotnet-aspnet-codegenerator

dotnet tool install --global dotnet-aspnet-codegenerator --version 3.1.4

Tópico relacionado aqui