Microsoft.VisualStudio.Web.CodeGeneration.Design introuvable par l'outil dotnet aspnet-codegenerator

Aug 16 2020

Je viens de créer une application MVC avec dotnet new mvc --name test-project( netcoreapp3.1), sans aucun type d'accès à la base de données et d'identité, que je voudrais ajouter à la main à des fins de personnalisation. Ensuite, j'ai ajouté quelques packages afin d'utiliser l' dotnet aspnet-codegeneratoroutil. Mon .csprojressemble à ceci:

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

Comme vous pouvez le voir, le Microsoft.VisualStudio.Web.CodeGeneration.Designest le premier de la liste. Cependant, lorsque j'essaie d'exécuter un échafaudeur à partir de l' dotnet aspnet-codegeneratoroutil (par exemple:) dotnet aspnet-codegenerator identity -h, j'obtiens le message suivant:

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

Même si je spécifie le .csprojfichier avec le -pdrapeau, j'obtiens toujours le même message. En faisant quelques recherches, j'ai trouvé ce problème sur leur repo, mais c'est une chose différente: l'OP essayait d'ajouter l'échafaudage à une application .NET Core 3.0 en utilisant la version d'échafaudage 3.1.

J'utilise dotnet 3.1.401 sur Xubuntu 20.04.

Des pensées? Merci d'avance.

EDIT 1 Certaines personnes ont suggéré que ce serait proche de ce que nous avons ici , mais le fait est: je sais ce que cela fait et j'ai en fait ajouté les "outils globaux" suggérés dans cet article. Le problème est aspnet-codegeneratorque je ne détecte pas que j'ai déjà la bibliothèque dont il a besoin pour ses choses, ajoutée au .csprojfichier.

MODIFIER 1

Apparemment, quelques personnes sont également confrontées à ce problème, alors j'ai déposé un problème sur leur repo

Réponses

1 Blondu Nov 21 2020 at 07:37

Cela date déjà de quelques mois, mais je suis tombé dessus récemment pour tous mes projets.

Au cas où quelqu'un d'autre atterrirait sur cette page, la solution dans mon cas (MAC OS) était de désinstaller et de réinstaller dotnet-aspnet-codegenerator.

Exécuter dans le terminal:

dotnet tool uninstall --global dotnet-aspnet-codegenerator

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

Sujet connexe ici