RestoreForceEvaluate は RestoreLockedMode をオーバーライドします。パッケージ ロック ファイルは再評価および再生成され、ロック モードは無視されます。
Issue
復元には RestoreLockedMode と RestoreForceEvaluate の両方が有効ですが、これらのオプションは矛盾しています。
-
RestoreLockedModeでは、packages.lock.jsonファイルは変更されず、解決されたパッケージの依存関係がロック ファイルと異なる場合、復元は失敗します。 -
RestoreForceEvaluateは、NuGet がパッケージの依存関係を再評価し、復元のたびにロック ファイルを再生成するように強制します。
両方を設定すると、 RestoreForceEvaluate が優先されます。ロック ファイルは再評価および再生成され、要求されたロック モードは無視されます。
この警告は、無視されたロック モードがサイレントでないように発生します。
ソリューション
目的に基づいて、次のいずれかのプロパティのみを有効にします。
繰り返し可能な復元 (CI/CD シナリオなど) を保証するには、
RestoreLockedMode有効のままにし、RestoreForceEvaluateの設定を停止します。 たとえば、復元コマンドから--force-evaluateオプション (または-p:RestoreForceEvaluate=true) を削除します。dotnet restore --locked-modeフローティング バージョンを意図的に再評価し、ロック ファイルを再生成するには、
RestoreForceEvaluate有効のままにし、RestoreLockedModeの設定を停止します。dotnet restore --force-evaluate
Note
この警告は、.NET 11 SDK (SdkAnalysisLevel 値 11.0.100 以上) 以降で既定で発生します。
SdkAnalysisLevel プロパティを変更して、この動作を制御できます。