NuGet-hiba NU1011

A következő PackageVersion-elemek nem adhatnak meg lebegő verziót: PackageName.

Probléma

Egy projekt a NuGet Central Package Management használatára van konfigurálva, és egy <PackageVersion /> elem van meghatározva, amely egy lebegő verzióértéket ad meg az Version attribútumhoz:

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

Alapértelmezés szerint az <PackageVersion /> elemek nem adhatnak meg lebegő verziókat. A NuGet központi csomagkezelése lehetővé teszi a felhasználók számára a csomagverziók egyetlen helyen történő kezelését, valamint a determinisztikus és biztonságos visszaállításokat. A lebegő verziók használata lehetővé teszi, hogy egy rossz csomag bekerüljön a buildbe, miután le lett küldve egy hírcsatornába. Ez olyan helyzethez vezethet, amikor nem módosította az adattárat, de hirtelen valami megszakadt egy új csomag hibája miatt, és nincs mód arra, hogy visszatérjen a megfelelő állapotba anélkül, hogy eltávolítaná a lebegő verziót, vagy leküldné a csomag egy újabb verzióját, amely javítva van. A nem lebegő verziók használata azt jelenti, hogy egy csomag minden frissítését egy véglegesítés segíti az adattárban, így könnyen meghatározható, hogy mi okozta a törést, és lehetővé teszi a véglegesítés visszaállítását, hogy visszakerüljön a megfelelő állapotba.

A Central Package Managementtranzitív rögzítési funkciójának használatakor a lebegő verzió felülbírálásként való használata esetén a különböző projektek visszaállítása a csomag különböző verzióival végződhet, amelyeket rögzíteni kell, így a központilag meghatározott verzió használatának ígéretével szemben.

A NuGet azt javasolja, hogy a Dependabothoz hasonló automatizálással tartsa meg a csomagverziókat up-to- dátumot, amely leegyszerűsíti a csomagverziók frissítését, miközben integrálható a meglévő fejlesztői munkafolyamatba egy lekéréses kérelemből, automatikus buildérvényesítésből és az adattárban lévő véglegesítés által támogatott tesztelésből.

Megoldás

<ItemGroup>
  <PackageVersion Include="PackageName" Version="1.0.0" />
</ItemGroup>
  • Ha ez nem lehetséges, vagy lebegő verziókat szeretne használni a Central Package Management szolgáltatással, ezt egy MSBuild tulajdonság beállításával teheti meg:
<PropertyGroup>
  <CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>