Поделиться через


Ошибка NuGet NU1302

Сценарий 1

Выполняется операция восстановления с источником HTTP: myHttpSource. NuGet требует источников HTTPS. Чтобы использовать источник HTTP, необходимо явно задать значение allowInsecureConnections в файле NuGet.Config. Дополнительные сведения см. в 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, чтобы отключить ошибки. Вот как она работает:

  • Для значения уровня анализа пакета SDK ниже 9.0.100, использование источников HTTP вызывает предупреждение (NU1803).
  • Начиная с уровня анализа пакета SDK 9.0.100 или более поздней, источники HTTP приводят к ошибке (NU1302), если AllowInsecureConnections явно не включен.

Warning

Изменение Пакета SDKAnalysisLevel имеет другие побочные эффекты. SdkAnalysisLevel Ознакомьтесь с сводкой о полном объеме затронутых функций пакета SDK для .NET.

Сценарий 2

Вы используете источник NuGet ,https://contoso/v3/index.json содержащий конечную точку ресурса индекса службы HTTP: "http://contoso/v3-flatcontainer/contoso/index.json". Это небезопасно и не рекомендуется. Чтобы разрешить ресурсы HTTP, необходимо явно задать значение allowInsecureConnections в файле NuGet.Config. Дополнительные сведения см. на странице https://aka.ms/nuget-https-everywhere.

Issue

Настроенный источник пакета использует HTTPS, но один из его ресурсов (указанный в сообщении об ошибке) использует HTTP.

NuGet требует, чтобы все источники и их ресурсы использовали ПРОТОКОЛ HTTPS. Если вы хотите продолжать использовать этот источник, несмотря на его ресурс HTTP, необходимо задать для флага allowInsecureConnections значение true в файле NuGet.config.

Дополнительные сведения о источниках пакетов и конечных точках ресурсов см. в API NuGet Server.

Вариант 1. Обновление источника для использования HTTPS

По возможности переключитесь на источник пакета, предоставляющий только ресурсы HTTPS. Это рекомендуемый и наиболее безопасный вариант.

Вариант 2. Разрешить небезопасные подключения (при необходимости)

Если необходимо использовать источник, явным образом разрешайте небезопасные подключения, добавив allowInsecureConnections флаг в :NuGet.Config

Сведения об управлении параметром в Visual Studio см. в разделе "Параметры NuGet" в Visual Studio

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