Проблема с восстановлением dotnet, NuGet и VS Code на Linux за корпоративным прокси - PullRequest
0 голосов
/ 10 января 2019

У меня проблемы с созданием модульных тестов с использованием кода .NET Core 2.1 + VS под Linux за корпоративным прокси. Я довольно новичок в VS Code и .NET Core, хотя у меня есть опыт работы с .NET и Visual Studio.

Я могу успешно создать проект решения ( dotnet new sln ), Библиотека классов ( dotnet new classlib ) / Консольное приложение ( dotnet new console ) и правильно связать их вместе. Однако при попытке выполнить модульное тестирование с помощью:

dotnet new xunit,

Сбой операции dotnet restore . Вывод вышеупомянутой команды следующий:

/usr/share/dotnet/sdk/2.1.301/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/home/ryuzakyl/Desktop/CSharpWithVSCode/test/CSharpWithVSCode.Tests/CSharpWithVSCode.Tests.csproj]

/usr/share/dotnet/sdk/2.1.301/NuGet.targets(114,5): error : Response status code does not indicate success: 407 (Proxy Authentication Required ( Forefront TMG requires authorization to fulfill the request. Access to the Web Proxy filter is denied.  )). [/home/ryuzakyl/Desktop/CSharpWithVSCode/test/CSharpWithVSCode.Tests/CSharpWithVSCode.Tests.csproj]

Сообщения об ошибках указывают на то, что это может быть связано с некоторыми проблемами конфигурации прокси-сервера (ошибка HTTP 407), но я вполне могу установить расширения VS Code для C # (C #, Nuget Package Manager, Omnisharp и т. Д.). корпоративный прокси.

Я думаю, что ошибка может быть связана с конфигурацией прокси-сервера NuGet. Я следовал этим инструкциям (в Linux я использовал файл ~ / .nuget / NuGet / NuGet.Config ), но ни одна из рекомендаций для меня не сработала.

В случае, если это поможет:

$ uname --all
Linux matrix 4.8.0-53-generic #56~16.04.1-Ubuntu SMP Tue May 16 01:18:56 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

$ dotnet --version
2.1.301

$ code --version
1.30.1
dea8705087adb1b5e5ae1d9123278e178656186a
x64

Заранее спасибо;).

1 Ответ

0 голосов
/ 20 января 2019

После многих попыток это то, что закончилось для меня.

Мне пришлось установить утилиту командной строки nuget с:

sudo aptitude install nuget

для более подробной информации см. этот пост. Следующим шагом является настройка nuget для использования прокси:

# set proxy
$ nuget config -set http_proxy=http://proxy.com:port
$ nuget config -set https_proxy=http://proxy.com:port

# set username (in my case, the domain name was not necessary)
$ nuget config -set http_proxy.user=username
$ nuget config -set https_proxy.user=username

# set password
$ nuget config -set http_proxy.password=password
$ nuget config -set https_proxy.password=password

Файл конфигурации, в котором будут храниться такие изменения, - ~/.config/NuGet/NuGet.Config. Внутри встроенного терминала VS Code (Ctrl + `) попробуйте скачать пакет:

$ dotnet add package Newtonsoft.Json

и вы должны увидеть вывод, подобный следующему:

  Writing /tmp/tmp2RmRVL.tmp
info : Adding PackageReference for package 'Newtonsoft.Json' into project '/home/ryuzakyl/Desktop/CSharpWithVSCode/src/CSharpWithVSCode.ClassLib/CSharpWithVSCode.ClassLib.csproj'.
log  : Restoring packages for /home/ryuzakyl/Desktop/CSharpWithVSCode/src/CSharpWithVSCode.ClassLib/CSharpWithVSCode.ClassLib.csproj...
info :   GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/index.json
info :   OK https://api.nuget.org/v3-flatcontainer/newtonsoft.json/index.json 286ms
info : Package 'Newtonsoft.Json' is compatible with all the specified frameworks in project '/home/ryuzakyl/Desktop/CSharpWithVSCode/src/CSharpWithVSCode.ClassLib/CSharpWithVSCode.ClassLib.csproj'.
info : PackageReference for package 'Newtonsoft.Json' version '12.0.1' updated in file '/home/ryuzakyl/Desktop/CSharpWithVSCode/src/CSharpWithVSCode.ClassLib/CSharpWithVSCode.ClassLib.csproj'.

Надеюсь, это поможет;)

...