web-dev-qa-db-ja.com

nuspecで特定の依存関係バージョンを指定する方法は?

私は最初のnugetパッケージを作成しています。最新バージョンではないバージョンの依存関係を追加しました。ただし、この依存関係の最新バージョンに更新する必要はありません。特定のバージョンを使用するように指示することは可能ですか?

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

パッケージをインストールすると、次のように表示されます。

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

これにより、パッケージをインストールするときに以下が作成されます。

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

私は本当にこのようなものを見たいです:依存関係 'NHibernate(3.2.0.3001)'を解決しようとしています。

76
devlife

括弧で正確なバージョンを強制することができるはずです:

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

使用できる形式の詳細については、NuGetサイトをご覧ください。

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

121
Danny Tuppeny

NuGet docs site から、完全な表記法:

enter image description here

16

http://nuget.codeplex.com/wikipage?title=Dependency%20Resolution およびその他のソースによると、単に下限を

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

そのバージョンに一致する最低のメジャー/マイナーバージョンの最高のリビジョン/パッチレベルになります。

ドキュメントを完全に誤解しない限り、3.2。*バージョンが見つからない場合を除き、これは最高の3.2。*バージョンに一致しますが、3.3。*以降のバージョンには一致しません。

3.2.0.3001が依存する唯一のバージョンである何らかの理由がある場合、他のパッケージはNHibernate [3.2.0.3002 、3.3)これは、少なくとも3.2.0.3002で3.3未満を意味します。

2
Chris Lee

ユーザー側から、packages.configでallowedVersionsを指定して、アップグレードを制限することもできます。 http://docs.nuget.org/docs/reference/versioning#Constraining_Upgrades_To_Allowed_Versions

2
ferventcoder