NuGet エラー NU1011
一元的に定義されたフローティング パッケージ バージョンは使用できません。
問題点
既定では、 <PackageVersion />
項目には浮動バージョンを含めることはできません。 NuGet の中央パッケージ管理 (CPM) は、大規模なバージョン管理を容易にし、決定論的で安全な復元を提供するエンタープライズ レベルの機能と見なされます。 フローティング バージョンを使用すると、フィードにプッシュされた後に、不適切なパッケージがビルドに導入される可能性が生じます。 これにより、リポジトリに変更を加えていなくても、突然不具合が発生する可能性があります。この状況では、フローティング バージョンを削除するか、修正した新しいバージョンのパッケージをプッシュしない限り、正常な状態に戻すことはできません。 非フローティング バージョンを使用すると、パッケージへのすべてのアップグレードがリポジトリ内のコミットによってサポートされるため、不具合の原因となった変更を特定し、コミットを元に戻して正常な状態に戻すことが容易になります。
推移的なピン留め機能は、グラフ内の推移的なバージョンを明示的にオーバーライドして、より細かい制御を実現できるように設計されています。 フローティング バージョンをオーバーライドとして使用すると、異なるプロジェクトの復元で、ピン留めされるはずのパッケージの異なるバージョンが使用される可能性があり、中央バージョンを使用するという約束に反する結果となります。
NuGet では、Dependabot などの自動化を使用してパッケージ バージョンを最新の状態に保つことを推奨しています。この自動化は、プル要求、自動ビルド検証、リポジトリ内のコミットによってサポートされるすべてのテストなどの既存の開発者ワークフローに統合し、パッケージを最新の状態に保つ効率的な方法を提供します。
解決策
フローティング バージョンを 非浮動小数点バージョン範囲に変更することをお勧めします。 それが不可能な場合は、MSBuild プロパティを設定することで、CPM でフローティング バージョンを有効にすることができます。
<PropertyGroup>
<CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>