私は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から単一のパッケージのみを参照しています。
パッケージフォルダを共有する複数のソリューションが同じフォルダにありますか? ソース管理にパッケージをコミットしていますか? – davidfowl
いいえ、できません。私たちはソリューション間でパッケージフォルダを共有せず、問題のパッケージをソース管理にコミットしていません。しかし、それはもはや問題ではありません。問題のパッケージのすべての古いフォルダを削除しただけで、もう一度作業を開始しました。 –
package.configに指定されているバージョンと比較して、私はパッケージのフォルダに別のバージョンをインストールしている可能性があります(私たちはチェックインしていないので)。 –