Azure Pipelines: NuGet Restore のプロキシ環境を設定する
NuGetAuthenticate が既にフィードの資格情報を構成していても、復元プロセスに http_proxy と no_proxy を渡します。
NuGetAuthenticate はパッケージ フィードへの認証を構成します。認証タスクが成功しても、dotnet、nuget.exe、MSBuild の送信プロキシは構成されません。
資格情報の設定が成功し、続く復元で HTTP プロキシが必要な場合は、そのプロセスの環境を指定します。たとえば次のとおりです。
- task: NuGetAuthenticate@1
- script: dotnet restore
env:
http_proxy: $(proxyUrl)
no_proxy: packages.corp.example,localhost,127.0.0.1proxyUrl は、意図した完全なプロキシ URL を保持する既存のパイプライン変数です。バイパス一覧は、実際のフィード ルーティング ポリシーに合わせて調整してください。パブリックな仲介者を経由して許可されるパブリック フィードでは、HTTP プロキシ一覧がアカウント不要の proxyUrl の候補を提供します。プライベート フィードのバイパスはそのまま残してください。この抜粋は、プロジェクトのパッケージ ソースが既に構成されていることを前提としています。
Linux と macOS では、ドキュメントに記載されている環境変数名は小文字です。http_proxy という名前のパイプライン変数は、自動エクスポート時に大文字になることがあります。env を明示的にマッピングすれば、ツールが必要とするキーが維持されます。
セルフホステッド エージェントの場合は、これらの値をエージェント プロセスの環境に設定し、変更後にそのエージェントを再起動する方法もあります。別のターミナルの環境は、既に実行中のサービスを更新しません。
NuGet は構成ファイル内のプロキシ エントリもサポートしています。これらはパッケージ ソースの資格情報とは分けて管理し、別のアカウントで復元が実行されるときは有効な構成スコープを確認してください。
復元されたパッケージは、フィードの最初の URL 以外を必要とする場合があります。後続のパッケージ ダウンロードや認証ホストが失敗する場合は、プロキシとバイパスのポリシーを評価するときに、その実際のホスト名を使用してください。