2011-08-31 14 views
41

私はプロジェクトで開発したNuGetパッケージをVSプロジェクトにインストールしました。私は私が手nugetプロジェクトでUpdate-Packageを実行すると:Nuget Update-Packageはインストールされたパッケージを認識しません - >アップデートに失敗しました

Update-Package : 'Project name' was not installed in any project. Update failed. 
At line:1 char:15 
+ Update-Package <<<< Project name 
    + CategoryInfo   : NotSpecified: (:) [Update-Package], InvalidOperationException 
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.UpdatePackageCommand 

私はNuGetパッケージが定義され、それがされていることを確認しpackage.configファイルにチェックインしました。すべての手がかりは?

+0

パッケージフォルダを共有する複数のソリューションが同じフォルダにありますか? ソース管理にパッケージをコミットしていますか? – davidfowl

+0

いいえ、できません。私たちはソリューション間でパッケージフォルダを共有せず、問題のパッケージをソース管理にコミットしていません。しかし、それはもはや問題ではありません。問題のパッケージのすべての古いフォルダを削除しただけで、もう一度作業を開始しました。 –

+0

package.configに指定されているバージョンと比較して、私はパッケージのフォルダに別のバージョンをインストールしている可能性があります(私たちはチェックインしていないので)。 –

答えて

49

私はTomasと同じプロジェクトに取り組んでおり、この問題が発生した理由とその理由を把握しようとしました。これは、パッケージのフォルダに1つ以上の古いバージョンのパッケージがあり、 'update-package'コマンドを発行しようとすると起こると思われます。私たちのパッケージのフォルダと設定コマンドを発行する前に

は次のようになります。

Packagesフォルダ:

Common.WebApi.1.0.0.109 
Common.WebApi.1.0.0.110 

パッケージの設定:

<packages> 
    <package id="Common.WebApi" version="1.0.0.110" /> 
    <package id="System.Json" version="4.0.20126.16343" /> 
    <package id="System.Net.Http" version="2.0.20126.16343" /> 
</packages> 

、「更新パッケージ共通を発行するとき.WebApi 'エラー:
アップデートパッケージ:「OPF.Common.WebApi」はどのプロジェクトにもインストールされていませんでした。アップデートに失敗しました。

これを修正するには、パッケージフォルダから古いパッケージ 'Common.WebApi.1.0.0.109'を削除し、次に動作するコマンドを再実行します。

明白な質問は、私のパッケージフォルダに古いパッケージがあるのはなぜですか?これは私たちがソース管理に独自のパッケージをコミットしないために起こります。代わりに、我々はここで説明されたアプローチを使用します。http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

「古いパッケージの問題」は、このような状況で発生します。
1.開発者Aは、パッケージを更新し、ソース管理
2にpackage.configをコミットします。開発者Bがソース管理から最新のバージョンを取得し、更新されたpackage.configを受け取ります
3.開発者Bがプロジェクトをビルドし、新しいパッケージがパッケージフォルダに作成されます
4. Nugetは開発者Bの古いパッケージをパッケージから削除しません開発者Bはパッケージのフォルダに古いパッケージと新しいパッケージの両方を持つようになりましたが、package.config内の新しいバージョンへの参照のみが含まれていました。

私には、パッケージフォルダに複数のバージョンのパッケージが存在するとは考えられず、パッケージフォルダ内の複数のバージョンを持つパッケージを更新しようとすると混乱しますpackage.configから単一のパッケージのみを参照しています。

+6

短い話をするには:パッケージの未使用バージョンが 'packages'フォルダにないことを確認してください。 – jgauffin

5

私は最近、パッケージ/ repositories.configが見つからなかったことが判明しました(パッケージフォルダをコミットしないため)。私はVSで(おそらくプロジェクトに新しいパッケージを追加する)何かをして、VSがすべてのプロジェクトのすべてのパッケージをリストするrepositories.configファイルを再生成させるようにしました。その後、アップデートは正常に機能しました。ここで

+0

私のシナリオのように聞こえます。 –

+0

あなたの場合と同様のケース - 私はvsixファイルを4回ダウンロードしていました。削除してNuGet.Tools.vsixという名前のファイルを1つ残すと、名前は(1)、(2)、(3)に追加されました。 (あなたがナゲットを更新しようとしたときにエラーが発生した場合、それ以上ナゲットからインストールすることはできないと考えています) – ramnz

+0

同じように、ソース管理のために神様に感謝します – Casey

2

は、私はパッケージマネージャの最新バージョンを取得するために管理方法は次のとおりです。> ManagerでアンインストールNuGetを追加>(管理者として実行)管理者モード

  • ツールで

    1. スタートVS2010を
    2. ビジュアルを再起動しますスタジオ
    3. インストールNuGet

    Voila!

    これが役に立ちます。

  • 3

    私は同じ問題を抱えていました。私たちはパッケージフォルダをチェックインしていません(ナゲットビルドタスクはすべてのパッケージをダウンロードします)。

    私が問題を解決する唯一の方法は、パッケージフォルダを削除してから、プロジェクトを再ビルドすることでした。

    0

    これが発生する可能性がありますもう一つの方法は:

    1. パッケージは、(例えばReSharperの2016.2ビルドを使用して)復元されていませ
    2. は、問題のパッケージのバージョンながら更新しようとして/パッケージ/
    3. 存在しません。

    修復するには何らかの方法で復元パッケージを実行してください

    関連する問題