RestoreForceEvaluate 會覆寫 RestoreLockedMode;套件的鎖定檔案會被重新評估並重新生成,鎖定模式則會被忽略。
問題
兩者都RestoreLockedModeRestoreForceEvaluate啟用用於還原,但這些選項是相互矛盾的:
-
RestoreLockedMode要求packages.lock.json檔案保持不變,若已解決的套件相依性與鎖定檔案不同,則還原失敗。 -
RestoreForceEvaluateNuGet 強制每次還原時重新評估套件相依關係並重新生成鎖檔案。
當兩者同時設定時, RestoreForceEvaluate 優先權為:鎖檔案會被重新評估並重新生成,而請求的鎖定模式則被忽略。
此警告提高是為了避免忽略鎖定模式靜音。
解決方案
根據您的意圖,只啟用以下一項物業:
為了保證可重複還原(例如 CI/CD 情境),請保持
RestoreLockedMode啟用並停止設定。RestoreForceEvaluate例如,移除--force-evaluate還原指令中的選項(或-p:RestoreForceEvaluate=true):dotnet restore --locked-mode若要有意識地重新評估浮動版本並重新產生鎖檔案,請保持
RestoreForceEvaluate啟用並停止設定:RestoreLockedModedotnet restore --force-evaluate
Note
此警告預設會從 .NET 11 SDK(SdkAnalysisLevel值11.0.100以上)開始發出。
你可以更改 SdkAnalysisLevel 屬性來控制這種行為。