프록시 뒤의 NuGet


104

NuGet은 1.4 버전부터 프록시 설정 구성을 허용한다는 것을 알았습니다. 그러나 명령 줄 예제를 찾을 수 없습니다.

일부 빌드를 실행하려고하는데 NuGet이 연결할 수 없습니다.

명령 줄에서 프록시 설정을 구성하려면 어떻게합니까?


1
" 'nuget.org'원격 이름 확인할 수 없습니다"프록시 문제가 발생한 다른 사용자의 이익을 위해 : NuGet 메시지가 표시되는 경우는 프록시 수 알
pduncan

4
수표의주의 http_proxyhttps_proxy당신의 시스템 프록시 설정 한 환경 변수를
대령 패닉

지금 github에 문제가 있습니다 : github.com/NuGet/Home/issues/458
thekip

답변:


202

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( Windows 7 컴퓨터의 C : \ Users \ myUserName \ AppData \ Roaming 에 매핑 됨 ).

<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>

덧붙여서, 이것은 또한 Visual Studio에서 처음으로 패키지 소스에 도달했을 때만 작동하는 NuGet 문제를 해결했습니다.

이 접근 방식을 시도한 일부 사람들 http_proxy.password은 명령 줄에서 키 설정을 생략 하거나 구성 파일에서 사후에 삭제할 수 있었으며 여전히 NuGet 기능을 사용할 수 있었다는 의견을 통해보고 했습니다. 프록시를 통해.

그러나 NuGet 구성 파일에서 암호를 지정 해야하는 경우 프록시 자격 증명이 네트워크 인 경우 네트워크 로그인을 변경할 때 명령 줄에서 NuGet 구성에 저장된 암호를 업데이트해야합니다. 자격 증명 .


NuGet 명령 줄은 NuGet.config 파일에 항목을 추가하지 않았지만 파일을 수동으로 편집 한 후에는 훌륭하게 작동했습니다.
pduncan 2013-07-24

19
제 경우에는 http_proxy.password 키를 완전히 생략했고 인증 된 AD 자격 증명을 통과하는 것이 기쁜 것 같았습니다. 이렇게하면 암호를 자주 변경할 필요가 없습니다.
선생님 Crispalot

5
경고 arcain에서 제안한 구성을 사용할 때주의하십시오. Windows 암호를 변경할 때 구성 파일에서 암호를 변경했는지 확인하십시오. 회사 정책에 따라 비밀번호를 변경 한 후 내 Windows 계정이 임의로 잠겼습니다. 이 구성 항목이 전체 문제를 일으키는 것을 알아내는 데 몇 시간이 걸렸습니다. 가장 좋은 방법은 간단하게 제거하는 것입니다 http_proxy.password의 @Sir Crispalot에 의해 제안 키를
AJ Qarshi

3
Crispalot 경이 언급 한 것을 시도하고 http_proxy.password 키를 제거하십시오. 그것은 일부 사람들에게 효과가 있었고 NuGet 구성 파일에서 암호를 변경하지 않아도되었습니다.
arcain

4
여기서 또 다른 승리는 이러한 설정을 사용하고 암호 키를 생략하는 것이 NTLM 인증을 사용하는 회사 프록시 뒤에서 저에게 효과적이었습니다.
Cᴏʀʏ

22

아마도 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 + 네트워크 문제에 대한 다른 귀중한 의견도 있습니다.


2
그러나 이것은 devenve.exe (Visual Studio)가 설치되어 있다고 가정합니다. 이것은 빌드 서버에 있어서는 안됩니다
Kat Lim Ruiz

IE의 프록시 설정을 따르도록이 설정을 제거해야 작동합니다.
Rosdi Kasim

xml <system.net> <defaultProxy useDefaultCredentials="true" enabled="true"> </defaultProxy> <settings> <ipv6 enabled="true"/> </settings> </system.net> 나를 위해 일하십시오, 그것은 시스템 프록시 설정을 사용했습니다. WINDOWS 10에서 테스트
반 Thoai 응우 엔

11

https 버전의 nuget ( https://www.nuget.org )을 사용하는 경우 https로 값을 설정해야합니다.

  • https_proxy
  • https_proxy.user
  • https_proxy.password

1
에서 HTTPS 암호는 arcains 가이드하지만 HTTPS를 사용 따르는 경우 nuget.config에 일반 텍스트
dmce

이것은 내 문제를 해결했으며 자세한 내용은 여기 github.com/NuGet/Home/issues/5980 .
jpierson

따라서 https 버전의 nuget을 사용하는 경우 'http'를 사용하여 프록시 주소를 설정할 수 없습니까?
coder kemp

8

나는 틀릴 수 있지만 IE의 프록시 설정을 사용한다고 생각했습니다.

로그인이 필요하다고 판단되면 대화 상자가 열리고 로그인하라는 메시지가 표시됩니다.

여기에서 이에 대한 설명을 참조하십시오-> http://docs.nuget.org/docs/release-notes/nuget-1.5


1
그렇습니다.이 접근 방식의 문제는 회사의 그룹 정책이 제 직장에서 발생하는 것처럼 계속해서 IE 설정을 Nuget과 작동하지 않는 설정으로 되돌릴 때 발생합니다
Xcalibur

5

VS2015를 사용하는 사람 : "407 프록시 인증 필요"오류가 발생하여 빌드가 손상되었습니다. 몇 시간 동안 조사한 결과 'DownloadNuGet'대상의 일부로 Nuget을 다운로드하려고 할 때 MSBuild가 자격 증명을 보내지 않는 것으로 나타났습니다. 해결책은 다음 XML을 <configuration>요소 내의 C : \ Program Files (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe.config에 추가하는 것입니다 .

<system.net>
            <defaultProxy useDefaultCredentials="true">
            </defaultProxy>
</system.net>

4

나를위한 해결책은

<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파일.


1
이 파일은 어디에서 찾을 수 있습니까?
Marcelo Machado

2
@MarceloMachado : 여기 %의 AppData % \ NuGet \ NuGet.config
의 Torben Kohlmeier

윈도우 10 사용자의 nuget.config 위치 : %의 AppData % \ 로밍 \ Nuget \ NuGet.config
Stato Machino

사용자 이름과 비밀번호를 지정하지 않고`<add key = "http_proxy"value = "http : // <IP> : <Port>"/>`만 수행하도록 선택할 수 있습니다. 그 후에 Visual Studio를 다시 시작해야합니다!
taylorswiftfan 19

VS를 다시 시작하는 것이 중요합니다! 또한 관리자로 실행하는 데 문제가있는 것 같습니다 (일반 사용자로 실행해야합니까?)
Mars

4

동일한 "nuget 용 프록시"에 대한 또 다른 특징 : 또는 fiddler를 통해 연결하도록 nuget 프록시 설정을 지정할 수 있습니다 . cmd 아래에서 사용자의 기본 nuget 구성 파일에 프록시 설정을 저장합니다.%APPDATA%\NuGet\NuGet.Config

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

인터넷에 연결하기 위해 너겟이 필요할 때마다 Fiddler를 열고 기본 포트 8888에서 수신 대기하는 피들러가 있다고 가정합니다.

이 구성은 Fiddler가 업스트림 프록시를 사용하여 모든 인증을 해결하므로 패스 워크 변경에 민감하지 않습니다.



1

약간의 추가 ...

사용자 이름과 암호가 아닌 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 파일을 커밋합니다.



0

@arcain의 제안 외에도 다음 Windows Azure Content Delivery Network URL을 프록시 서버의 화이트리스트에 추가해야했습니다.

.msecnd.net

0

@arcain Plus의 솔루션 위의 단계 아래에서 문제가 해결되었습니다.

  1. Nuget 패키지 관리자 설정에서 "패키지 소스"를 수정하여 nuget.org 설정을 사용하는 확인란을 선택하면 문제가 해결되었습니다.

  2. 또한 패키지 소스의 첫 번째 선택으로 그 (nuget.org)를 사용하도록 변경했습니다.
    저는 회사 패키지 소스를 선택 취소하여 너겟이 항상 글로벌 소스에서 선택되었는지 확인했습니다.


0

내가 개발 한 Windows Server 2016 Standard에서 Credential Manager 제어판을 열고 더 이상 유효하지 않은 Visual Studio의 캐시 된 프록시 설정을 지운 다음 Visual Studio를 다시 시작해야했습니다. 다음에 Nuget Package Manager를 열었을 때 프록시 자격 증명을 입력하라는 메시지가 표시되어 다시 작업하게되었습니다.

참조 : https://support.microsoft.com/en-us/help/4026814/windows-accessing-credential-manager

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.