[c#] 프록시 뒤의 NuGet

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

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

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



답변

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 구성에 저장된 암호를 업데이트해야합니다. 자격 증명 .


답변

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


답변

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

  • https_proxy
  • https_proxy.user
  • https_proxy.password

답변

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

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

여기에서 이에 대한 설명을 참조하십시오-> http://docs.nuget.org/docs/release-notes/nuget-1.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>


답변

나를위한 해결책은

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


답변

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

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

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

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