Microsoft.VisualStudio.Web.CodeGeneration.Design tidak ditemukan oleh alat dotnet aspnet-codegenerator

Aug 16 2020

Saya baru saja membuat aplikasi MVC dengan dotnet new mvc --name test-project( netcoreapp3.1), tanpa akses database dan Identitas apa pun, yang ingin saya tambahkan secara manual untuk tujuan kustomisasi. Kemudian saya menambahkan beberapa paket untuk menggunakan dotnet aspnet-codegeneratoralat ini. Saya .csprojterlihat seperti ini:

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

Seperti yang Anda lihat, Microsoft.VisualStudio.Web.CodeGeneration.Designini adalah yang pertama dalam daftar. Namun, ketika saya mencoba menjalankan scaffolder dari dotnet aspnet-codegeneratoralat (misalnya :) dotnet aspnet-codegenerator identity -h, saya mendapatkan pesan berikut:

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

Bahkan jika saya menentukan .csprojfile dengan -pbendera, saya masih mendapatkan pesan yang sama. Saat melakukan penelitian, saya menemukan Masalah ini di repo mereka, tetapi ini hal yang berbeda: OP mencoba menambahkan scaffolder ke .NET Core App 3.0 menggunakan versi perancah 3.1.

Saya menggunakan dotnet 3.1.401 di Xubuntu 20.04.

Ada pemikiran? Terima kasih sebelumnya.

EDIT 1 Beberapa orang menyarankan ini akan mendekati apa yang kita miliki di sini , tetapi masalahnya adalah: Saya tahu apa yang dilakukannya dan saya benar-benar menambahkan "alat global" yang disarankan dalam artikel itu. Masalahnya adalah aspnet-codegeneratortidak mendeteksi bahwa saya sudah memiliki perpustakaan yang diperlukan untuk hal-hal tersebut, ditambahkan ke .csprojfile.

EDIT 1

Rupanya, ada beberapa orang yang menghadapi masalah ini juga, jadi, saya mengajukan masalah di repo mereka

Jawaban

1 Blondu Nov 21 2020 at 07:37

Ini sudah berumur beberapa bulan, tetapi saya menemukannya baru-baru ini untuk semua proyek saya.

Jika ada orang lain yang masuk ke halaman ini, solusi dalam kasus saya (MAC OS), adalah menghapus dan menginstal ulang dotnet-aspnet-codegenerator.

Jalankan di terminal:

dotnet tool uninstall --global dotnet-aspnet-codegenerator

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

Topik terkait di sini