Microsoft.VisualStudio.Web.CodeGeneration.Design no se encuentra mediante la herramienta dotnet aspnet-codegenerator

Aug 16 2020

Acabo de crear una aplicación MVC con dotnet new mvc --name test-project( netcoreapp3.1), sin ningún tipo de acceso e identidad a la base de datos, que me gustaría agregar a mano para fines de personalización. Luego agregué algunos paquetes para usar la dotnet aspnet-codegeneratorherramienta. Mi .csprojaspecto es así:

<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 puede ver, Microsoft.VisualStudio.Web.CodeGeneration.Designes el primero de la lista. Sin embargo, cuando intento ejecutar cualquier andamio desde la dotnet aspnet-codegeneratorherramienta (por ejemplo:) dotnet aspnet-codegenerator identity -h, aparece el siguiente mensaje:

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

Incluso si especifico el .csprojarchivo con la -pbandera, sigo recibiendo el mismo mensaje. Mientras investigaba un poco, encontré este problema en su repositorio, pero es algo diferente: el OP estaba tratando de agregar el scaffolder a una aplicación .NET Core 3.0 usando la versión 3.1 del scaffolder.

Estoy usando dotnet 3.1.401 en Xubuntu 20.04.

¿Alguna idea? Gracias de antemano.

EDICIÓN 1 Algunas personas sugirieron que esto estaría cerca de lo que tenemos aquí , pero la cuestión es: sé lo que hace y de hecho agregué las "herramientas globales" sugeridas en ese artículo. El problema es aspnet-codegeneratorque no detecta que ya tengo la biblioteca que necesita para sus cosas, agregada al .csprojarchivo.

EDITAR 1

Aparentemente, hay un par de personas que también enfrentan este problema, así que presenté un problema en su repositorio.

Respuestas

1 Blondu Nov 21 2020 at 07:37

Esto ya tiene unos meses, pero lo encontré recientemente para todos mis proyectos.

En caso de que alguien más aterrice en esta página, la solución en mi caso (MAC OS) fue desinstalar y reinstalar dotnet-aspnet-codegenerator.

Ejecutar en terminal:

dotnet tool uninstall --global dotnet-aspnet-codegenerator

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

Tema relacionado aquí