NuGet 警告 NU3037

問題点

NuGet パッケージの署名の有効期限が切れています。 パッケージの署名は、署名の生成に使用される証明書と同じ有効期間を共有します。 パッケージの署名は、その有効期間を過ぎると無効になります。 署名証明書の有効期間を超えても長期的な有効性を確保するには、パッケージの署名に信頼できるタイムスタンプを付ける必要があります。 パッケージの署名がまだ有効であり、有効期限が切れていない間は、信頼できるタイムスタンプを追加する必要があります。

Windows でのみ、ルート証明書が初めて観察され、"The repository primary signature validity period has expired" (リポジトリのプライマリ署名の有効期間の有効期限が切れています) というメッセージが表示された場合にのみ、NU3037 が発生する可能性があります。再試行で問題が解決された場合は、 役に立つ可能性のあるオプションがあります

解決策

  • 有効期限が切れていない証明書を使用してパッケージを再署名します。 必要に応じて、署名時に信頼できるタイムスタンプを追加して、署名の長期的な有効性を確保します。
  • 受け入れモードの場合のみ、警告を無視します。

Note

NuGet の署名検証モードが受け入れ (デフォルト) に設定されている場合、期限切れのパッケージの署名を持つパッケージは署名されていないパッケージとして扱われ、とりあえずインストールされます。 NU3037 は警告として発生します。 NuGet の署名検証モードが必須に設定されている場合、または nuget verify -signatures コマンドを実行すると、NU3037 は警告からエラーに昇格されます。