Microsoft.VisualStudio.Web.CodeGeneration.Design không được tìm thấy bởi công cụ dotnet aspnet-codegenerator

Aug 16 2020

Tôi vừa tạo một ứng dụng MVC với dotnet new mvc --name test-project( netcoreapp3.1), không có bất kỳ loại quyền truy cập cơ sở dữ liệu và Danh tính nào, mà tôi muốn thêm bằng tay cho các mục đích tùy chỉnh. Sau đó, tôi đã thêm một số gói để sử dụng dotnet aspnet-codegeneratorcông cụ. Của tôi .csprojtrông như thế này:

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

Như bạn có thể thấy, Microsoft.VisualStudio.Web.CodeGeneration.Designcái đầu tiên trong danh sách. Tuy nhiên, khi tôi cố gắng chạy bất kỳ giàn giáo nào từ dotnet aspnet-codegeneratorcông cụ (ví dụ dotnet aspnet-codegenerator identity -h:), tôi nhận được thông báo sau:

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

Ngay cả khi tôi chỉ định .csprojtệp có -pcờ, tôi vẫn nhận được thông báo tương tự. Trong khi thực hiện một số nghiên cứu, tôi đã tìm thấy Vấn đề này trên repo của họ, nhưng có một điều khác: OP đang cố gắng thêm bộ giàn giáo vào .NET Core App 3.0 bằng cách sử dụng phiên bản bộ dàn dựng 3.1.

Tôi đang sử dụng dotnet 3.1.401 trên Xubuntu 20.04.

Có suy nghĩ gì không? Cảm ơn bạn trước.

CHỈNH SỬA 1 Một số người cho rằng điều này sẽ gần với những gì chúng ta có ở đây , nhưng vấn đề là: Tôi biết nó hoạt động gì và tôi thực sự đã thêm "các công cụ toàn cầu" được đề xuất trong bài viết đó. Vấn đề là aspnet-codegeneratorkhông phát hiện ra rằng tôi đã có thư viện mà nó cần cho những thứ của nó, được thêm vào .csprojtệp.

CHỈNH SỬA 1

Rõ ràng, có một vài người cũng đang gặp phải vấn đề này, vì vậy, tôi đã gửi một vấn đề trên repo của họ

Trả lời

1 Blondu Nov 21 2020 at 07:37

Điều này đã được một vài tháng, nhưng tôi đã chạy gần đây cho tất cả các dự án của mình.

Trong trường hợp ai đó truy cập vào trang này, giải pháp trong trường hợp của tôi (MAC OS) là gỡ cài đặt và cài đặt lại dotnet-aspnet-codegenerator.

Chạy trong thiết bị đầu cuối:

dotnet tool uninstall --global dotnet-aspnet-codegenerator

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

Chủ đề liên quan tại đây