NuGet за прокси - PullRequest
       91

NuGet за прокси

88 голосов
/ 10 февраля 2012

Я выяснил, что NuGet позволяет конфигурировать настройки прокси начиная с версии 1.4.Но я не могу найти пример командной строки.

Я пытаюсь запустить сборку, а NuGet не может подключиться.

Как настроить параметры прокси в командной строке

Ответы [ 12 ]

174 голосов
/ 17 марта 2013

Вот что я сделал, чтобы заставить это работать с моим корпоративным прокси, который использует NTLM-аутентификацию. Я скачал NuGet.exe и затем выполнил следующие команды (которые я нашел в комментариях к этой дискуссии в CodePlex):

nuget.exe config -set http_proxy=http://my.proxy.address:port
nuget.exe config -set http_proxy.user=mydomain\myUserName
nuget.exe config -set http_proxy.password=mySuperSecretPassword

В моем NuGet.config, расположенном по адресу %appdata%\NuGet (в соответствии с C: \ Users \ myUserName \ AppData \ Roaming на моем компьютере с Windows 7) помещается следующее:

<configuration>
    <!-- stuff -->
    <config>
        <add key="http_proxy" value="http://my.proxy.address:port" />
        <add key="http_proxy.user" value="mydomain\myUserName" />
        <add key="http_proxy.password" value="base64encodedHopefullyEncryptedPassword" />
    </config>
    <!-- stuff -->
</configuration>

Кстати, это также исправило мою проблему с NuGet, работающей только при первом обращении к источнику пакета в Visual Studio.

Обратите внимание, что некоторые люди, которые попробовали этот подход, сообщили в комментариях, что им удалось пропустить установку ключа http_proxy.password из командной строки или удалить его после факта из файла конфигурации и все еще могли иметь функцию NuGet через прокси.

Однако, если вы обнаружите, что необходимо указать свой пароль в файле конфигурации NuGet, помните, что вам нужно обновить сохраненный пароль в конфигурации NuGet из командной строки при изменении Ваш сетевой логин, если ваши учетные данные прокси также являются сетевыми учетными данными .

21 голосов
/ 28 февраля 2012

Может быть, вы можете попробовать это на вашем devenv.exe.config

<system.net>
    <defaultProxy useDefaultCredentials="true" enabled="true">
        <proxy proxyaddress="http://proxyaddress" />
    </defaultProxy>
    <settings>
        <servicePointManager expect100Continue="false" />
        <ipv6 enabled="true"/>
    </settings>
</system.net>

Я нашел его из NuGet Issue tracker

Есть также другие ценные комментарии о проблемах сети NuGet +.

10 голосов
/ 22 мая 2014

На всякий случай, если вы используете https версию nuget (https://www.nuget.org),, учтите, что вы должны установить значения с помощью https.

  • https_proxy
  • https_proxy.user
  • https_proxy.password
7 голосов
/ 28 февраля 2012

Я могу ошибаться, но я думал, что он использует настройки прокси в IE.

Если он видит, что вам необходимо войти в систему, он открывает диалоговое окно и просит вас сделать это (вход в систему, который есть).

Пожалуйста, смотрите описание этого здесь -> http://docs.nuget.org/docs/release-notes/nuget-1.5

4 голосов
/ 11 апреля 2016

Всем, кто использует VS2015: я столкнулся с ошибкой «Требуется 407 проверка подлинности прокси», которая сломала мою сборку. После нескольких часов расследования выясняется, что MSBuild не отправлял учетные данные при попытке загрузить Nuget как часть цели DownloadNuGet. Решением было добавить следующий XML в C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe.config внутри элемента <configuration>:

<system.net>
            <defaultProxy useDefaultCredentials="true">
            </defaultProxy>
</system.net>
2 голосов
/ 17 марта 2017

Может быть, это помогает кому-то еще.Для меня решением было открыть настройки NuGet в Visual Studio (2015/2017) и добавить новый URL-адрес канала: http://www.nuget.org/api/v2/.

Мне не нужно было изменять настройки, связанные с прокси.

1 голос
/ 31 июля 2015

Просто небольшое дополнение ...

Если вам удастся указать только параметр http_proxy, а не имя пользователя и пароль, я бы порекомендовал поместить параметры прокси-сервера в локальный файл nuget.config проекта и зафиксировать его.это в источник контроля.Таким образом, все члены команды получают одинаковые настройки.

Создайте пустой. \ Nuget.config

   <?xml version="1.0" encoding="utf-8"?>
   <configuration>
   </configuration>

Тогда:

   nuget config -Set http_proxy="http://myproxy.example.com:8080" -ConfigFile .\Nuget.Config

И, наконец, зафиксируйте свой новый проектлокальный файл Nuget.config.

1 голос
/ 30 июля 2015

Еще один вариант того же «прокси для nuget»: в качестве альтернативы вы можете установить настройки прокси-сервера для Nuget для подключения через fiddler .Ниже cmd сохранит настройки прокси-сервера в файле конфигурации nuget по умолчанию для пользователя в% APPDATA% \ NuGet \ NuGet.Config

nuget config -Set HTTP_PROXY = http://127.0.0.1:8888

Всякий раз, когда вам нужен nuget длячтобы выйти в Интернет, просто откройте Fiddler, если у вас есть фидлер, прослушивающий порт по умолчанию 8888.

Эта конфигурация не чувствительна к изменениям паролей, потому что фиддлер разрешит любую аутентификацию с прокси восходящего потока для вас.

0 голосов
/ 02 марта 2017

Решением для меня было включить

<configuration>
  <config>
    <add key="http_proxy" value="http://<IP>:<Port>" />
    <add key="http_proxy.user" value="<user>" />
    <add key="http_proxy.password" value="<password>" />
  </config>
</configuration>

в файл nuget.config.

0 голосов
/ 08 ноября 2016

Выше Решение @arcain Plus ниже шаги решили мне проблему

  1. Изменение «источников пакетов» в настройках менеджера пакетов Nuget для проверки флажок для использования настроек nuget.org решил мою проблему.

  2. Я также изменил использование этого (nuget.org) в качестве первого выбора источника пакета
    Я снял флажки в источниках пакетов своей компании, чтобы убедиться, что нюгет всегда был выбран по сравнению с глобальными источниками.

...