2011-10-14 14 views
65

私は最初のナゲットパッケージを作りました。私は、最新バージョンではないバージョンで依存関係を追加しました。しかし、私はこの依存関係の最新バージョンに更新したくありません。それは特定のバージョンを使用するように指示することは可能ですか?私はパッケージをインストールするときnuspecに特定の依存関係バージョンを指定する方法は?

Attempting to resolve dependency 'NHibernate (≥ 3.2.0.3001)'. 

これは以下を作成します。私はパッケージをインストールすると

<dependencies> 
    <dependency id="NHibernate" version="3.2.0.3001" /> 
</dependencies> 

は、私は、これは参照してください。 依存 'NHibernateは(3.2.0.3001)' を解決しようとすると:

<packages> 
    <package id="Iesi.Collections" version="3.2.0.4000" /> 
    <package id="NHibernate" version="3.2.0.4000" /> 
</packages> 

私は本当にこのような何かを見てみたいと思います。

+3

以下の答えとして、あなたはこれを行うことができます。しかし、あなたのパッケージを使用し、NHibernate(または厳密なパッケージバージョンを指定した他の依存関係)を使用する人は、あなたがそれらを許可しない限り何らかの理由でこれを更新できないことに注意してください。これは悪い状態です。 "ロックされたバージョン"は最近私たちに噛みました。私たちの場合、バージョンロックされたパッケージはNHibではなく、無関係のパッケージでした。アップストリームライブラリに本物の壊れた変更があった場合は、バージョンをロックする必要があるかもしれませんが、我々のケースではそうではなかったのです。この構文のちょうど過度使用。だからあなたがそれを使用するならば、注意してそれを使用してください! – Anthony

答えて

96

あなたはブラケットで正確なバージョンを強制することができます。

<dependency id="NHibernate" version="[3.2.0.3001]" /> 

使用できるフォーマットの完全な情報は、ここでは、NuGetサイト上で、次のとおりですから

http://docs.nuget.org/docs/reference/version-range-specification

+0

私はそのページを見つけられなかったのか知りません!ありがとう。 – devlife

+0

これを行うことができます。しかし、あなたのパッケージを使用し、NHibernateを使用する人は、あなたがそれらを許さない限り、何らかの理由でNHibernateを更新できないことを覚えておいてください。これは大きな問題ではありません。 – Anthony

+0

@Anthony私はこのコメントが私の答えであることの方が良いと思う。私はちょうどそれを提唱していない、それを行う方法を示していた。あなたが描いている問題は簡単に解決できません。バグやAPIの違いなどの理由で、同じバージョンのNHを動作させないコードが2つ多い場合は、既にあなたは嫌われています。実際の修正は、(Nodeのような)私的な依存関係ですが、.NETがそれを "適切に"サポートしているのを見ることはできません:( –

2

http://nuget.codeplex.com/wikipage?title=Dependency%20Resolutionと他の情報源によれば、単に

<dependencies> 
    <dependency id="NHibernate" version="3.2.0.3001" /> 
</dependencies> 

として下限を指定すると、そのバージョンに一致する最も低いメジャー/マイナーバージョンの最高リビジョン/パッチレベルをもたらすであろう。

マニュアルを完全に誤解しない限り、3.2。*バージョンが見つからない場合は、3.3。*以上のバージョンではありません。

3.2.0.3001が依存する唯一のバージョンである理由がある場合、あなたのパッケージはNHibernateに依存する他のパッケージと互換性がないことがあります[3.2.0.3002,3.3]であり、少なくとも3.2.0.3002で3.3未満であることを意味する。 NuGet docs siteから

5

、完全な表記:

enter image description here

関連する問題