Microsoft.VisualStudio.Web.CodeGeneration.Design non trovato dallo strumento dotnet aspnet-codegenerator

Aug 16 2020

Ho appena creato un'app MVC con dotnet new mvc --name test-project( netcoreapp3.1), senza alcun tipo di accesso al database e identità, che vorrei aggiungere a mano per motivi di personalizzazione. Quindi ho aggiunto alcuni pacchetti per poter utilizzare lo dotnet aspnet-codegeneratorstrumento. Il mio .csprojassomiglia a questo:

<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>

Come puoi vedere, Microsoft.VisualStudio.Web.CodeGeneration.Designè il primo della lista. Tuttavia, quando provo a eseguire qualsiasi scaffolder dallo dotnet aspnet-codegeneratorstrumento (ad esempio:) dotnet aspnet-codegenerator identity -h, ricevo il seguente messaggio:

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

Anche se specifico il .csprojfile con il -pflag, ricevo comunque lo stesso messaggio. Durante alcune ricerche, ho trovato questo problema nel loro repository, ma è una cosa diversa: l'OP stava cercando di aggiungere lo scaffolder a un'app .NET Core 3.0 utilizzando la versione 3.1 scaffolder.

Sto usando dotnet 3.1.401 su Xubuntu 20.04.

qualche idea? Grazie in anticipo.

EDIT 1 Alcune persone hanno suggerito che questo sarebbe stato vicino a quello che abbiamo qui , ma il fatto è: so cosa fa e ho effettivamente aggiunto gli "strumenti globali" suggeriti in quell'articolo. Il problema è che aspnet-codegeneratornon sto rilevando che ho già la libreria di cui ha bisogno per le sue cose, aggiunta al .csprojfile.

MODIFICA 1

Apparentemente, ci sono anche un paio di persone che stanno affrontando questo problema, quindi ho presentato un problema nel loro repo

Risposte

1 Blondu Nov 21 2020 at 07:37

Questo è già vecchio di pochi mesi, ma mi sono imbattuto di recente in tutti i miei progetti.

Nel caso in cui qualcun altro arrivasse su questa pagina, la soluzione nel mio caso (MAC OS) era disinstallare e reinstallare dotnet-aspnet-codegenerator.

Esegui nel terminale:

dotnet tool uninstall --global dotnet-aspnet-codegenerator

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

Argomento correlato qui