76 votes

Comment spécifier une version de dépendance spécifique dans nuspec ?

Je suis en train de créer mon premier paquet nuget. J'ai ajouté une dépendance avec une version qui n'est pas la dernière version. Cependant, je ne veux pas mettre à jour la dernière version de cette dépendance. Est-il possible de lui demander d'utiliser la version spécifique ?

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

Lorsque j'installe le paquet, je vois ceci :

Attempting to resolve dependency 'NHibernate ( 3.2.0.3001)'.

Cela donne le résultat suivant lorsque j'installe le paquet.

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

J'aimerais vraiment voir quelque chose comme ceci : Tentative de résolution de la dépendance 'NHibernate (3.2.0.3001)'.

121voto

Danny Tuppeny Points 9856

Vous devriez pouvoir forcer une version exacte avec des parenthèses :

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

Des informations complètes sur les formats que vous pouvez utiliser sont disponibles sur le site NuGet, ici :

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

27voto

Aviram Fireberger Points 1561

De la Site de documentation NuGet , les notations complètes :

enter image description here

2voto

ferventcoder Points 2703

Du côté de l'utilisateur, vous pouvez également limiter la mise à niveau en spécifiant les versions autorisées dans le fichier packages.config. http://docs.nuget.org/docs/reference/versioning#Constraining_Upgrades_To_Allowed_Versions

2voto

Chris Lee Points 11

Selon http://nuget.codeplex.com/wikipage?title=Dependency%20Resolution et d'autres sources, il suffit de spécifier la limite inférieure en tant que

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

aura pour résultat le niveau de révision/patch le plus élevé de la version majeure/minor la plus basse correspondant à cette version.

À moins que je ne comprenne mal la documentation, cela correspondrait à la version 3.2.* la plus élevée, mais pas aux versions 3.3.* ou supérieures, à moins qu'aucune version 3.2.* ne puisse être trouvée.

Si, pour une raison quelconque, la version 3.2.0.3001 est la seule version dont vous souhaitez dépendre, il se peut que votre paquet ne soit pas compatible avec d'autres paquets qui dépendent également de NHibernate, par exemple parce que l'autre paquet dépend de NHibernate [3.2.0.3002,3.3), ce qui signifie au moins 3.2.0.3002 mais moins que 3.3.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X