共用方式為


NuGet 錯誤 NU1302

案例 1

您正在執行具有 『HTTP』 來源的 『restore』 作業:myHttpSource。 NuGet 需要 HTTPS 來源。 若要使用 HTTP 來源,您必須在 NuGet.Config 檔案中明確將 'allowInsecureConnections' 設定為 true。 如需詳細資訊,請參閱 https://aka.ms/nuget-https-everywhere

Issue

myHttpSource 是不安全的 HTTP 來源。 建議您改用 HTTPS 來源。

Solution

選項 1:將來源更新為使用 HTTPS

可能的話,請更新套件來源以使用 https://,而不是 http://

<configuration>
  <packageSources>
    <add key="SecureSource" value="https://example.com/nuget/" />
  </packageSources>
</configuration>

選項 2:允許不安全的連線(如有必要)

如果來源必須保持 HTTP,請在 AllowInsecureConnections中新增 NuGet.Config 旗標,明確允許不安全的連線:

<configuration>
  <packageSources>
    <add key="InsecureSource" value="http://example.com/nuget/" allowInsecureConnections="true" />
  </packageSources>
</configuration>

選項 3:諮詢 SDK 分析層級

專案中的 SdkAnalysisLevel 屬性可作為管理 HTTP 來源的暫時因應措施。 如果需要額外的時間來解決 HTTP 錯誤,您可以降低 SdkAnalysisLevel 暫時隱藏錯誤。 以下是其運作方式:

  • 對於低於9.0.100的SDK分析層級 值,使用 HTTP 來源會觸發警告(NU1803)。
  • 從 SDK 分析層級 9.0.100 或更高版本開始,除非明確啟用 AllowInsecureConnections,否則 HTTP 來源會產生錯誤 (NU1302)。

Warning

變更 SdkAnalysisLevel 有其他副作用。 如需 SdkAnalysisLevel 受影響之 .NET SDK 功能完整範圍的摘要,請參閱 。

案例 2

您使用的是包含 'HTTP' 服務索引資源端點http://contoso/v3-flatcontainer/contoso/index.json的 NuGet 來源 'https://contoso/v3/index.json':'。 這是不安全的,不建議這樣做。 若要允許 HTTP 資源,您必須在 NuGet.Config 檔案中明確將 'allowInsecureConnections' 設定為 true。 如需詳細資訊,請瀏覽:https://aka.ms/nuget-https-everywhere

Issue

已設定的套件來源使用 HTTPS,但其其中一個資源 (在錯誤訊息中指出) 使用 HTTP。

NuGet 需要所有來源及其資源都使用 HTTPS。 如果您想要繼續使用此來源,儘管其 HTTP 資源,則必須在 NuGet.config 檔案中將旗標設定 allowInsecureConnections 為 true。

若要深入瞭解套件來源和資源端點,請查看 NuGet 伺服器 API

選項 1:將來源更新為使用 HTTPS

盡可能切換至僅提供 HTTPS 資源的套件來源。 這是推薦且最安全的選項。

選項 2:允許不安全的連線(如有必要)

如果您必須使用來源,請在 allowInsecureConnectionsNuGet.Config

如需在 Visual Studio 中管理設定的相關資訊,請參閱 Visual Studio 中的 NuGet 選項

<configuration>
  <packageSources>
    <add key="InsecureSource" value="https://contoso/v3/index.json" allowInsecureConnections="true" />
  </packageSources>
</configuration>