2012-09-17 12 views
6

私のソリューションでNuGet Package Restoreを有効にしました。私はnuget.exeのバージョン2.0.30828.5を使用しています。通常の公開フィードに含まれているパッケージの場合、NuGet Package Restoreは正常に動作します。つまり、 "Packages"ディレクトリに何もなく、ローカルのNuGetキャッシュ(C:\ Users \ {username} \ AppData \ Local \ NuGet \ Cache)がクリアされていれば、NPRは完全に動作します。私はNuGetコードだけでなく、逆コンパイルnugetを見てみるとNuGetパッケージの復元カスタムフィードで資格情報を要求できません

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. 

:私たちは、カスタムフィード(カスタムフィードは基本認証を持っている)我々はこれを取得するには、パッケージのためのNPRを使用しようとしているが

、 .exeを使用して文字列を検索する"資格情報を要求することができません。資格情報を指定する方法についてはNuGetのヘルプドキュメントを参照してください。"私はそこにそれを見ていますが、誰がそのエラーメッセージを利用しているかを確かめることはできません。

パッケージを追加すると(NuGet UIまたはPackage Managerコンソールから)、資格情報が要求され、正常に動作します。これはパッケージのリストアにのみ問題です。

私は、このコマンドを実行してみました:

NuGet.exe source Update -Name {feedname} -UserName {myusername} -Password {mypassword} 

が、同じ結果を取得します。

NuGetパッケージの復元の基本認証を使用してカスタムNuGetフィードに資格情報を指定する方法を知っている人はいますか?

UPDATE 2012年9月18日

私はこの問題に関する最新情報を持っています。私は、のnuget.exeソースアップデート...コマンドを実行したとき、私の解決策にローカルな.nugetフォルダにあったNuGet.configファイルにセクションを追加しました。私はprocmon.exeを実行していましたが、このファイルが見られていないことに気づいたビルドを実行していました!代わりに "C:\ Users {ユーザー名} \ AppData \ Roaming \ NuGet"ディレクトリのNuGet.configファイルを探していました。次に、ローカルのNuGet.configファイルのセクションを\ AppData \ Roaming \ NuGetディレクトリのNuGet.configファイルにコピー/貼り付け、それが機能しました。

だから質問は、は何ですか?このプロセスのベストプラクティスはですか?

答えて

6

これは今動作しています。これは私がそれを働かせるために得たものです。まず、次のコマンドが表示されます。

NuGet.exe source Update -Name {feedname} -UserName {myusername} -Password {mypassword} 

これは正しい方法です。警告は、 "nuget.exe source Update"コマンドを実行すると、nuget.exeは存在する場合、実行されているnuget.exeと同じディレクトリにあるNuGet.configファイルを探します。 IFが存在する場合、そこに変更が保存されます。 でなければが存在し、%AppData%\ NuGetディレクトリにあるNuGet.configファイルに変更が保存されます。

追加の注意点は、パッケージがビルドの一部として実行されます復元したときに、それが唯一のは%APPDATA%\ NuGetディレクトリ内NuGet.configファイルを見て、であるNuGet.configファイルを無視、ということです実行されているnuget.exeの同じディレクトリ(これはバグか意図的なのか分かりません)。

したがって、このコマンドはナゲットを使用して実行する必要があります。ではなく、のディレクトリにあるexeは、%AppData%\ NuGetディレクトリの正しいNuGet.configファイルに変更が確実に保存されるようにNuGet.configファイルがあります。

+0

Nuget.exeに設定ファイルを提供するオプションがあるので、そのファイルを試して使用するように呼び出す際には明示的にしようとするかもしれませんが、いくつかのコマンドでは無視されるかもしれません。 – dragon788

関連する問題