Microsoft.VisualStudio.Web.CodeGeneration.Design wird vom dotnet aspnet-codegenerator-Tool nicht gefunden

Aug 16 2020

Ich habe gerade eine MVC-App mit dotnet new mvc --name test-project( netcoreapp3.1) ohne Datenbankzugriff und Identität erstellt, die ich zu Anpassungszwecken von Hand hinzufügen möchte. Dann habe ich einige Pakete hinzugefügt, um das dotnet aspnet-codegeneratorTool zu verwenden. Mein .csprojsieht so aus:

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

Wie Sie sehen können, Microsoft.VisualStudio.Web.CodeGeneration.Designist der erste in der Liste. Wenn ich jedoch versuche, einen Gerüstbauer über das dotnet aspnet-codegeneratorTool auszuführen (z. B. dotnet aspnet-codegenerator identity -h:), wird die folgende Meldung angezeigt:

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

Selbst wenn ich die .csprojDatei mit dem -pFlag spezifiziere , erhalte ich immer noch die gleiche Nachricht. Während einiger Recherchen habe ich dieses Problem in ihrem Repo gefunden, aber es ist eine andere Sache: Das OP hat versucht, den Gerüst mithilfe der 3.1-Gerüstversion zu einer .NET Core App 3.0 hinzuzufügen.

Ich verwende dotnet 3.1.401 auf Xubuntu 20.04.

Irgendwelche Gedanken? Danke im Voraus.

BEARBEITEN 1 Einige Leute schlugen vor, dass dies in etwa dem entspricht, was wir hier haben , aber die Sache ist: Ich weiß, was es tut, und ich habe tatsächlich die in diesem Artikel vorgeschlagenen "globalen Werkzeuge" hinzugefügt. Das Problem ist aspnet-codegenerator, dass nicht erkannt wird, dass ich bereits die Bibliothek habe, die es zu seinen Dingen benötigt, die der .csprojDatei hinzugefügt wurden .

BEARBEITEN 1

Anscheinend gibt es auch ein paar Leute, die mit diesem Problem konfrontiert sind, also habe ich ein Problem in ihrem Repo eingereicht

Antworten

1 Blondu Nov 21 2020 at 07:37

Dies ist bereits ein paar Monate alt, aber ich bin kürzlich für alle meine Projekte darauf gestoßen.

Falls jemand anderes auf dieser Seite landet, bestand die Lösung in meinem Fall (MAC OS) darin, zu deinstallieren und neu zu installieren dotnet-aspnet-codegenerator.

Im Terminal ausführen:

dotnet tool uninstall --global dotnet-aspnet-codegenerator

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

Verwandte Themen hier