NuGet Behind Proxy
Я выясню, что NuGet позволяет настроить настройки прокси-сервера с версии 1.4. Но я не могу найти какой-либо пример командной строки.
Я пытаюсь запустить некоторую сборку, и NuGet не может подключиться.
Как настроить параметры прокси-сервера в командной строке?
Ответы
Ответ 1
Вот что я сделал, чтобы заставить это работать с моим корпоративным прокси, который использует аутентификацию 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 из командной строки при изменении входа в сеть, если учетные данные прокси-сервера также являются вашей сетью. учетные данные.
Ответ 2
Возможно, вы могли бы попробовать это для своего 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
Есть и другие ценные комментарии о проблемах сети NuGet +.
Ответ 3
На всякий случай, если вы используете https-версию nuget (https://www.nuget.org), имейте в виду, что вам нужно установить значения с помощью https.
- https_proxy
- https_proxy.user
- https_proxy.password
Ответ 4
Я мог ошибаться, но я думал, что он использовал настройки прокси-сервера IE.
Если он видит, что вам нужно войти в систему, он откроет диалоговое окно и попросит вас сделать это (логин, который есть).
См. описание этого здесь → http://docs.nuget.org/docs/release-notes/nuget-1.5
Ответ 5
Для всех, кто использует VS2015: я столкнулся с ошибкой "407 Proxy Authentication required", которая сломала мою сборку. После нескольких часов исследования выясняется, что MSBuild не отправлял учетные данные при попытке загрузить Nuget как часть цели "DownloadNuGet". Решение заключалось в том, чтобы добавить следующий XML в C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe.config внутри элемента <configuration>
:
<system.net>
<defaultProxy useDefaultCredentials="true">
</defaultProxy>
</system.net>
Ответ 6
Может быть, это помогает кому-то другому. Для меня решение заключалось в том, чтобы открыть настройки NuGet в Visual Studio (2015/2017) и добавить новый URL-адрес канала: http://www.nuget.org/api/v2/.
Мне не нужно было изменять какие-либо настройки, связанные с прокси.
Ответ 7
Еще один аромат для такого же "прокси-сервера для nuget": альтернативно вы можете настроить параметры прокси-сервера nuget для подключения через fiddler. Ниже cmd сохранит настройки прокси-сервера в файле конфигурации nuget по умолчанию для пользователя в% APPDATA%\NuGet\NuGet.Config
nuget config -Set HTTP_PROXY = http://127.0.0.1:8888
Всякий раз, когда вам нужно nuget для доступа к Интернету, просто откройте Fiddler, и вы попробуете прослушивать скрипдер на порту 8888 по умолчанию.
Эта конфигурация не чувствительна к пассивным изменениям, так как скрипач разрешает любую аутентификацию с помощью прокси-сервера upstream для вас.
Ответ 8
Просто небольшое дополнение...
Если вы используете только параметры 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 проекта.
Ответ 9
Попробуйте this. В принципе, подключение может завершиться неудачно, если ваша система не доверяет сертификату nuget.
Ответ 10
Помимо предложений от @arcain, я должен был добавить следующий URL-адрес сети доставки контента Windows Azure на наш прокси-сервер: белый список:
.msecnd.net
Ответ 11
Выше решение от @arcain Plus ниже шагов разрешило мне проблему
-
Изменение "источников пакетов" в настройках ящика пакета Nuget для проверки
флажок, чтобы использовать настройки nuget.org, разрешил мою проблему.
-
Я также изменил использование этого (nuget.org) в качестве первого выбора источника пакета
Я снял флажки с источников своего пакета, чтобы гарантировать, что nuget всегда был выбран
из глобальных источников.
Ответ 12
Решение для меня было включить
<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
.