共用方式為


NuGet 已簽署的套件驗證選項

重試不受信任的根失敗

注意

此問題僅適用於 Microsoft 信任根計劃中跟證書的 Windows。

在憑證鏈結建置期間,Windows 會在第一次使用時擷取相關的第三方跟證書,並將其新增為本機信任的跟證書。 在內部,Windows 會使用 RPC 呼叫起始此網路擷取,而且如果系統足夠忙碌,此 RPC 呼叫可能會失敗。 此失敗會導致跟證書在本機不受信任。 此問題可能會在第一次觀察到跟證書時發生,但一旦跟證書受到本機信任,該憑證就不會再發生此問題。 一般而言,鏈結建置會成功並重試。

針對 NuGet 使用者,此問題的徵兆是 NuGet 作業通常會在重試時成功,並出現下列其中一項:

  • NU3028 包含「認證鏈結已正確處理,但在信任提供者不信任的跟證書中終止」等訊息。
  • NU3037 包含「存放庫主要簽章有效期間已過期」等訊息。

注意

此選項從 NuGet 6.0.0 開始提供,僅適用於上述 Windows 特定失敗。 此選項不適用於任何其他案例,且不會影響Linux或macOS。

在 NuGet 6.8.0 和 .NET 8 SDK 之前,預設會停用此選項。

從 NuGet 6.8.0 和 .NET 8 SDK 開始,此選項預設會在 Windows 上啟用。 除非您想要覆寫 或的預設值 3,1000 ,否則不需要明確設定環境變數。若要退出退出,請使用的值 0設定環境變數。

您可以針對 Windows 上不受信任的根失敗啟用實驗性、自動重試,方法是設定名為 NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY 的環境變數,其值為 2 個逗號分隔的正整數,分別代表重試計數和睡眠間隔,以毫秒為單位。 您應該挑選適合您的值。

例如,將環境變數設定為 之類的 3,1000 值:

set NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY=3,1000

...每次嘗試之間最多會嘗試 4 次(初始嘗試加上 3 次重試),每次嘗試之間會嘗試 1 秒 (1,000 毫秒)。