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関数を使用できました。
ただし、must NuGet configファイルでパスワードを指定していることがわかった場合、NuGet configの保存されたパスワードをコマンドから更新する必要があることを覚えておいてください。プロキシ資格情報がネットワーク資格情報でもある場合、ネットワークログインを変更するときの行。
たぶんあなたはこれをあなたの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 Issue tracker から見つけました
NuGet +ネットワークの問題に関するその他の貴重なコメントもあります。
Httpsバージョンのnuget( https://www.nuget.org )を使用している場合に備えて、httpsで値を設定する必要があることに注意してください。
間違っている可能性がありますが、IEのプロキシ設定を使用していると思いました。
ログインする必要があることがわかると、ダイアログが開き、ログインするように求められます(ログイン)。
こちらの説明をご覧ください-> http://docs.nuget.org/docs/release-notes/nuget-1.5
VS2015を使用している場合:「407 Proxy Authentication required」エラーが発生し、ビルドが壊れました。数時間の調査の後、「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
ファイル内。
たぶん、これは他の誰かを助ける。私にとっての解決策は、Visual Studio(2015/2017)でNuGet設定を開き、新しいフィードURLを追加することでした: http://www.nuget.org/api/v2/ 。
プロキシ関連の設定を変更する必要はありませんでした。
同じ「nugetのプロキシ」の別のフレーバー:あるいは、 fiddler を介して接続するように、nugetプロキシ設定を設定できます。以下のcmdは、%APPDATA%\ NuGet\NuGet.Configのユーザーのデフォルトのnuget configファイルにプロキシ設定を保存します
nuget config -Set HTTP_PROXY = http://127.0.0.1:8888
インターネットにアクセスするためにnugetが必要なときはいつでも、Fiddlerを開いてください。デフォルトのポート8888でリドラーがリッスンしていると仮定します。
フィドラーはアップストリームプロキシを使用して認証を解決するため、この構成はパスワークの変更の影響を受けません。
ほんの小さな追加...
ユーザー名とパスワードではなく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ファイルをコミットします。
this を試してください。基本的に、システムがNuget証明書を信頼していない場合、接続が失敗する可能性があります。
@arcainからの提案とは別に、次のWindows Azureコンテンツ配信ネットワークのURLをプロキシサーバーのホワイトリストに追加する必要がありました。
.msecnd.net
@arcain Plusによる上記のソリューションは、以下の手順で問題を解決しました
Nugetパッケージマネージャー設定の下の「パッケージソース」を変更して、nuget.org設定を使用するチェックボックスをオンにすると、問題が解決しました。
また、パッケージソースの最初の選択としてthat(nuget.org)を使用するように変更しました
会社のパッケージソースのチェックを外して、グローバルソースから常にピックアップされるようにしました。