Udostępnij za pomocą


Błąd narzędzia NuGet NU1302

Scenariusz 1

Uruchamiasz operację "restore" ze źródłem "HTTP": myHttpSource. Pakiet NuGet wymaga źródeł HTTPS. Aby użyć źródła HTTP, należy jawnie ustawić wartość "allowInsecureConnections" na wartość true w pliku NuGet.Config. Aby uzyskać więcej informacji, zobacz https://aka.ms/nuget-https-everywhere.

Issue

myHttpSource jest niezabezpieczonym źródłem HTTP. Zamiast tego zalecamy używanie źródła HTTPS.

Solution

Opcja 1. Aktualizowanie źródła w celu używania protokołu HTTPS

Jeśli to możliwe, zaktualizuj źródło pakietu, aby użyć https:// zamiast http://:

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

Opcja 2. Zezwalaj na niezabezpieczone połączenia (w razie potrzeby)

Jeśli źródło musi pozostać http, jawnie zezwalaj na niezabezpieczone połączenia przez dodanie flagi AllowInsecureConnections w NuGet.Config:

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

Opcja 3. Zapoznaj się z poziomem analizy zestawu SDK

Właściwość SdkAnalysisLevel w projekcie może służyć jako tymczasowe obejście zarządzania źródłami HTTP. Jeśli potrzebny jest dodatkowy czas na rozwiązanie błędu HTTP, możesz tymczasowo obniżyć SdkAnalysisLevel, aby pominąć błędy. Oto jak działa:

  • W przypadku wartości poziomu analizy zestawu SDK poniżej 9.0.100przy użyciu źródeł HTTP wyzwala ostrzeżenie (NU1803).
  • Począwszy od poziomu analizy zestawu SDK 9.0.100 lub nowszej, źródła HTTP powodują błąd (NU1302), chyba że AllowInsecureConnections jest jawnie włączona.

Warning

Zmiana zestawu SdkAnalysisLevel ma inne skutki uboczne. Zapoznaj się z SdkAnalysisLevel podsumowaniem pełnego zakresu funkcji zestawu .NET SDK, których dotyczy problem.

Scenariusz 2

Używasz źródła NuGet "https://contoso/v3/index.json", które zawiera punkt końcowy zasobu indeksu usługi HTTP: "http://contoso/v3-flatcontainer/contoso/index.json". Jest to niezabezpieczone i niezalecane. Aby zezwolić na zasoby HTTP, należy jawnie ustawić wartość "allowInsecureConnections" na wartość true w pliku NuGet.Config. Aby uzyskać więcej informacji, zobacz https://aka.ms/nuget-https-everywhere.

Issue

Skonfigurowane źródło pakietu używa protokołu HTTPS, ale jeden z jego zasobów (wskazany w komunikacie o błędzie) używa protokołu HTTP.

Pakiet NuGet wymaga, aby wszystkie źródła i ich zasoby używały protokołu HTTPS. Jeśli chcesz nadal używać tego źródła pomimo zasobu HTTP, musisz ustawić flagę allowInsecureConnections na true w pliku NuGet.config.

Aby dowiedzieć się więcej na temat źródeł pakietów i punktów końcowych zasobów, zapoznaj się z interfejsem API serwera NuGet.

Opcja 1. Aktualizowanie źródła w celu używania protokołu HTTPS

Jeśli to możliwe, przełącz się do źródła pakietów, które udostępnia tylko zasoby HTTPS. Jest to zalecana i najbezpieczniejsza opcja.

Opcja 2. Zezwalaj na niezabezpieczone połączenia (w razie potrzeby)

Jeśli musisz użyć źródła, jawnie zezwalaj na niezabezpieczone połączenia, dodając flagę allowInsecureConnections w elemecie NuGet.Config:

Aby uzyskać informacje na temat zarządzania ustawieniem w programie Visual Studio, zobacz Opcje narzędzia NuGet w programie Visual Studio

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