ソリューションでNuGetパッケージの復元を有効にしました。nuget.exeバージョン2.0.30828.5を使用しています。通常のパブリックフィードにあるパッケージの場合、NuGetパッケージの復元は正常に機能します。つまり、「Packages」ディレクトリに何も存在せず、ローカルのNuGetキャッシュ(C:\ Users \ {username} \ AppData \ Local \ NuGet \ Cache)がクリアされている場合、NPRは完全に機能します。
ただし、カスタムフィード(カスタムフィードには基本認証があります)のパッケージにNPRを使用しようとすると、次のようになります。
EXEC : warning : Unable to prompt for credentials. Consult NuGet's help documentation for ways to specify credentials.
c:\<localpath>\.nuget\nuget.targets(80,9): error : Unable to find version '2.0.1.0' of package '<packageName>'.
c:\<localpath>\.nuget\nuget.targets(80,9): error MSB3073: The command ""c:\<localpath>\.nuget\nuget.exe" install "c:\<localpath>\packages.config" -source "" -RequireConsent -o "c:\<localpath>\packages"" exited with code 1.
NuGetコードを確認し、nuget.exeを逆コンパイルして、「資格情報の入力を求めることができません。資格情報を指定する方法については、NuGetのヘルプドキュメントを参照してください」という文字列を見つけると、そこに表示されますが、率直に言って、誰であるかを特定できません。そのエラーメッセージを利用します。
(NuGetUIまたはパッケージマネージャーコンソールから)パッケージを追加すると、資格情報の入力を求められ、正常に機能します。これは、パッケージの復元でのみ問題になります。
このコマンドを実行してみました:
NuGet.exe source Update -Name {feedname} -UserName {myusername} -Password {mypassword}
しかし、同じ結果が得られます。
NuGetパッケージ復元の基本認証を使用してカスタムNuGetフィードにクレデンシャルを指定する方法を知っている人はいますか?
2012年9月18日更新
この問題に関する最新情報があります。nuget.exe source Update ...コマンドを実行すると、ソリューションのローカルの.nugetフォルダーにあるNuGet.configファイルにセクションが追加されていることがわかりました。次に、ビルドの実行中にprocmon.exeを実行すると、このファイルが表示されていないことに気付きました。代わりに、「C:\ Users {username} \ AppData \ Roaming\NuGet」ディレクトリでNuGet.configファイルを探していました。次に、セクションをローカルのNuGet.configファイルから\ AppData \ Roaming \ NuGetディレクトリのNuGet.configファイルにコピーして貼り付けたところ、機能しました。
だから...問題は、このプロセスの正しいベストプラクティスは何ですか?