Как использовать .NET Core CLI за корпоративным прокси / брандмауэром? - PullRequest
0 голосов
/ 27 сентября 2018

Я скачал и распаковал сжатые двоичные файлы .NET Core SDK и добавил их в PATH.

Я могу создать новый консольный проект, используя dotnet new console, но когда я пытаюсь добавитьВ зависимости от dotnet add package DocumentFormat.OpenXml я получаю следующую ошибку:

Writing C:\Users\boobsbr\AppData\Local\Temp\tmp2C7B.tmp
info : Adding PackageReference for package 'DocumentFormat.OpenXml' into project 'C:\projects\test\test.csproj'.
log  : Restoring packages for C:\projects\test\test.csproj...
error: Unable to load the service index for source https://api.nuget.org/v3/index.json.
error:   No such host is known

Я читал в нескольких местах, что мне нужно добавить некоторую конфигурацию в NuGet.config, чтобы настроить HTTPS-прокси.Некоторые люди рекомендуют использовать nuget.exe config -Set для установки значений, но исполняемый файл отсутствует в папке двоичного дистрибутива, и я также прочитал, что dotnet.exe использует библиотеки NuGet DLL вместо вызова nuget.exe исполняемого файла.

Поэтому я решил отредактировать файл, расположенный по адресу C:\Users\boobsbr\AppData\Roaming\NuGet\NuGet.Config.Некоторые люди предлагают просто установить прокси-URL, а пользователь и пароль будут считаны из некоторой конфигурации системы, поэтому я добавил следующую строку в файл конфигурации:

<add key="https_proxy" value="http://proxy_url:8080" />

И этосообщение, которое я получил после попытки добавить пакет:

Writing C:\Users\boobsbr\AppData\Local\Temp\tmpA7AF.tmp
info : Adding PackageReference for package 'DocumentFormat.OpenXml' into project 'C:\projects\test\test.csproj'.
log  : Restoring packages for C:\projects\test\test.csproj...
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
log  : Retrying 'FindPackagesByIdAsyncCore' for source 'http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0'.
log  : No such host is known
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
log  : Retrying 'FindPackagesByIdAsyncCore' for source 'http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0'.
log  : No such host is known
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
error: Failed to retrieve information about 'DocumentFormat.OpenXml' from remote source 'http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0'.
error:   No such host is known

Хорошо, поэтому я попытался добавить имя пользователя, как предложили другие люди, и пароль должен быть автоматически подобран из некоторой системы:

<add key="https_proxy" value="http://proxy_url:8080" />
<add key="https_proxy.user" value="boobsbr" />

И это сообщение об ошибке:

Writing C:\Users\boobsbr\AppData\Local\Temp\tmp839E.tmp
info : Adding PackageReference for package 'DocumentFormat.OpenXml' into project 'C:\projects\test\test.csproj'.
log  : Restoring packages for C:\projects\test\test.csproj...
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
log  : Retrying 'FindPackagesByIdAsyncCore' for source 'http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0'.
log  : No such host is known
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
log  : Retrying 'FindPackagesByIdAsyncCore' for source 'http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0'.
log  : No such host is known
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
error: The local source 'C:\Users\boobsbr\AppData\Roaming\NuGet\boobsbr' doesn't exist.

Хорошо, тогда я попытался добавить пароль в виде открытого текста:

<add key="https_proxy" value="http://proxy_url:8080" />
<add key="https_proxy.user" value="boobsbr" />
<add key="https_proxy.password" value="my_pass" />

И я получил то же сообщение, что и предыдущийпытаться.Я также попытался использовать http_proxy вместо https_proxy, но безрезультатно.

Некоторые люди говорят, что пароль должен быть base64 и зашифрован, но единственный способ сделать это, кажется, через nuget.exe config -Setи у меня нет nuget.exe.

Я знаю пользователя: pass: url: значения портов работают, потому что я использовал их, чтобы заставить NPM общаться с реестром NPM.

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

Итак, как мне настроить CLI .NET Core для использования корпоративного прокси / брандмауэра?

Windwows 10 build: 15063

.NET Core SDK версия: 2.1.402

...