2011-07-19 6 views
3

私の会社は現在、すべての共有アセンブリをパッケージ化するためにナゲットを使用しています。また、タグを使用してセーバーに基づいてバージョン管理を開始しました。同じ依存関係を複数回取得すると、ナゲットのバージョンがチェックされない

私は、予想通りナゲットが働いていない状況があります。私は3つの共有アセンブリを持って

....

  • 列挙
  • 共通
  • ビジネスロジック
  • パッケージ参照の面では

...

  • コモン= > Enum
  • ビジネスロジック=>一般的な、列挙型

ビジネスロジックは共通して列挙型の両方に依存する理由は、私はそれがないときに共通の依存を更新(再構築、パッケージ、公開)する必要がありますする必要はないということですビジネスロジックで使用するためだけに追加された新しい列挙型を使用する必要があります

したがって、列挙型を追加してBusinessLogicで使用します。私はそれを行う前に、

これら

は、すべてのバージョンです...

  • 列挙= 1.4.0
  • コモン= 1.2.1
  • ビジネスロジック= 2.0.1

私は今、EnumプロジェクトにBusinessLogicで使用したい新しいenum値を追加し、Enumプロジェクトをビルド、パッケージ化、公開します。

  • 列挙= 1.5.0
  • コモン= 1.2.1
  • ビジネスロジック= 2.0.1今

、私はなど、ビジネスロジックに私の変更を行い、コミット、プッシュ、パッケージ...

  • 列挙= 1.5.0
  • コモン= 1.2.1
  • ビジネスロジック= 2.1.0

だから、今の依存関係は次のようになり...

  • 共通=>列挙1.4.0
  • ビジネスロジック=>列挙今1.5.0

私が実行して...私が起こることを期待何

nuget pack BusinessLogic.csproj 

nugetは、共通の列挙型の1.4.0が必要であることがわかりますが、ビジネスロジックは1.5.0を必要とするため、Enum >= 1.5.0のためのパッケージに依存を追加しますが、で列挙型には依存はありませんすべて、私はコモンがそれを果たすと仮定していると思う。

この動作は仕様ですか?

答えて

1

私は、現在の動作が正しくないことに同意します。 nugetは最小限のセットでそれらを保つために依存性を最適化しようとしますが、バージョンが異なるこのケースを考慮しません。

http://nuget.codeplex.com/にバグを報告してレーダーに表示できますか?

これを回避するには、BusinessLogicパッケージを構築するために使用されるコンパニオン.nuspecファイルに依存関係を明示的に追加する必要があります。

+0

ありがとう、 –

+0

.nuspecファイルを使用していても同じ問題があります。私はNuGet 1.4.20615.182を使用します。この問題を解決する他の方法はありますか? –

関連する問題