Sdílet prostřednictvím


Chyba NuGet NU1302

Scénář 1

Spouštíte operaci restore se zdrojem HTTP: myHttpSource. NuGet vyžaduje zdroje HTTPS. Pokud chcete použít zdroj HTTP, musíte explicitně nastavit allowInsecureConnections na hodnotu true v souboru NuGet.Config. Další informace najdete v https://aka.ms/nuget-https-everywhere.

Issue

myHttpSource je nezabezpečený zdroj HTTP. Doporučujeme místo toho použít zdroj HTTPS.

Solution

Možnost 1: Aktualizace zdroje tak, aby používal protokol HTTPS

Pokud je to možné, aktualizujte zdroj balíčku tak, aby místo https://používal http://:

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

Možnost 2: Povolit nezabezpečená připojení (v případě potřeby)

Pokud zdroj musí zůstat HTTP, explicitně povolte nezabezpečená připojení přidáním příznaku AllowInsecureConnections do NuGet.Config:

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

Možnost 3: Projděte si úroveň analýzy sady SDK

Vlastnost SdkAnalysisLevel v projektu může sloužit jako dočasné alternativní řešení pro správu zdrojů HTTP. Pokud je k vyřešení chyby HTTP potřeba další čas, můžete snížit SdkAnalysisLevel a dočasně potlačit chyby. Tady je postup, jak funguje:

  • Hodnota úrovně analýzy sady SDK nižší než 9.0.100, použití zdrojů HTTP aktivuje upozornění (NU1803).
  • Počínajeúrovně analýzy sady SDK 9.0.100 nebo vyššími zdroji HTTP dojde k chybě (NU1302), pokud není explicitně povolená .

Warning

Změna sdkAnalysisLevel má další vedlejší účinky. Podívejte se na SdkAnalysisLevel souhrn celého rozsahu ovlivněných funkcí sady .NET SDK.

Scénář 2

Používáte zdrojhttps://contoso/v3/index.json NuGet, který obsahuje koncový bod prostředku indexu služby HTTP: 'http://contoso/v3-flatcontainer/contoso/index.json'. Toto je nezabezpečené a nedoporučuje se. Pokud chcete povolit prostředky HTTP, musíte explicitně nastavit allowInsecureConnections na hodnotu true v souboru NuGet.Config. Další informace naleznete na adrese https://aka.ms/nuget-https-everywhere.

Issue

Nakonfigurovaný zdroj balíčku používá protokol HTTPS, ale jeden z jeho prostředků (uvedený v chybové zprávě) používá protokol HTTP.

NuGet vyžaduje, aby všechny zdroje a jejich prostředky používaly PROTOKOL HTTPS. Pokud chcete pokračovat v používání tohoto zdroje i přes jeho prostředek HTTP, musíte v souboru NuGet.config nastavit allowInsecureConnections příznak na true.

Další informace o zdrojích balíčků a koncových bodech prostředků najdete v rozhraní API serveru NuGet.

Možnost 1: Aktualizace zdroje tak, aby používal protokol HTTPS

Kdykoli je to možné, přepněte na zdroj balíčku, který poskytuje pouze prostředky HTTPS. Toto je doporučená a nejbezpečnější možnost.

Možnost 2: Povolit nezabezpečená připojení (v případě potřeby)

Pokud musíte použít zdroj, explicitně povolte nezabezpečená připojení přidáním příznaku allowInsecureConnections do :NuGet.Config

Informace o správě nastavení v sadě Visual Studio najdete v tématu Možnosti NuGet v sadě Visual Studio.

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