Kesalahan NuGet NU1018

Skenario

Proyek 'MyProject' mencoba memulihkan kerangka kerja duplikat, yang hanya didukung di resolver dependensi default saat SDK .NET versi 10.0.300 atau yang lebih baru. Tingkatkan SDK .NET Anda atau hapus RestoreUseLegacyDependencyResolver untuk menggunakan fitur ini.

Masalah

File proyek Anda memiliki beberapa TargetFrameworks entri yang diselesaikan ke kerangka kerja NuGet yang sama. Skenario ini dikenal sebagai alias kerangka kerja, di mana properti TargetFramework yang berbeda memetakan ke kerangka kerja yang mendasari yang sama.

Misalnya, file proyek seperti berikut mendefinisikan dua kerangka kerja target yang keduanya diselesaikan ke kerangka kerja NuGet yang sama net9.0 :

<PropertyGroup>
  <TargetFrameworks>net9.0-custom1;net9.0-custom2</TargetFrameworks>
</PropertyGroup>

Alias kerangka kerja hanya didukung di pemecah masalah dependensi default, yang memerlukan .NET SDK 10.0.300 atau yang lebih baru (SdkAnalysisLevel10.0.300 atau yang lebih baru). Ketika pemecah masalah dependensi warisan aktif (baik karena versi SDK lebih lama atau karena RestoreUseLegacyDependencyResolver diatur), format file aset tidak mendukung kerangka kerja duplikat, dan NuGet menimbulkan kesalahan ini.

Solusi

Gunakan salah satu pendekatan berikut untuk mengatasi kesalahan ini:

  • Upgrade ke .NET SDK 10.0.300 atau yang lebih baru, yang menggunakan pemecah masalah dependensi default yang mendukung alias kerangka kerja.
  • RestoreUseLegacyDependencyResolver Hapus properti dari file proyek Anda atau Directory.Build.props, jika diatur. Ini memungkinkan NuGet untuk menggunakan pemecah masalah dependensi default.
  • Hapus entri kerangka kerja duplikat dari properti Anda TargetFrameworks sehingga setiap kerangka kerja target diselesaikan ke kerangka kerja NuGet yang unik.