Bagikan melalui


Kesalahan NuGet NU1011

Item PackageVersion berikut tidak dapat menentukan versi mengambang: PackageName.

Masalah

Proyek dikonfigurasi untuk menggunakan NuGet Central Package Management dan <PackageVersion /> item ditentukan yang menentukan nilai versi mengambang untuk Version atribut:

<ItemGroup>
  <PackageVersion Include="PackageName" Version="1.*" />
</ItemGroup>

Secara default, <PackageVersion /> item tidak dapat menentukan versi mengambang. Manajemen Paket Pusat NuGet memberi pengguna kemampuan untuk mengelola versi paket di satu lokasi serta pemulihan yang deterministik dan aman. Penggunaan versi mengambang memperkenalkan kemungkinan untuk paket buruk diperkenalkan ke dalam build Anda setelah didorong ke umpan. Ini dapat menyebabkan situasi di mana Anda tidak membuat perubahan di repositori Anda tetapi tiba-tiba ada yang rusak karena masalah dalam paket baru dan tidak ada cara bagi Anda untuk kembali ke keadaan yang baik tanpa menghapus versi mengambang atau mendorong versi paket yang lebih baru yang diperbaiki. Menggunakan versi non-mengambang berarti bahwa setiap peningkatan ke paket didukung oleh penerapan di repositori Anda, sehingga mudah untuk menentukan perubahan apa yang menyebabkan jeda dan memungkinkan Anda mengembalikan penerapan untuk kembali ke keadaan yang baik.

Selain itu, saat menggunakan fitur penyematan transitifManajemen Paket Pusat, menggunakan versi mengambang sebagai penimpaan dapat membuat pemulihan proyek yang berbeda berakhir dengan versi yang berbeda untuk paket yang seharusnya disematkan, sehingga bertentangan dengan janji menggunakan versi yang ditentukan secara terpusat.

NuGet menyarankan Anda menggunakan otomatisasi seperti Dependabot untuk menjaga versi paket tetap up-to-date yang menyediakan cara yang disederhanakan untuk memperbarui versi paket sambil mengintegrasikan ke dalam alur kerja pengembang yang ada dari permintaan pull, validasi build otomatis, dan menguji semua yang didukung oleh penerapan di repositori Anda.

Solusi

<ItemGroup>
  <PackageVersion Include="PackageName" Version="1.0.0" />
</ItemGroup>
  • Jika itu tidak memungkinkan, atau Anda ingin menggunakan versi mengambang dengan Central Package Management, Anda dapat melakukannya dengan mengatur properti MSBuild:
<PropertyGroup>
  <CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>