Mon entreprise utilise maintenant nuget pour regrouper toutes nos assemblies partagées. Nous avons également commencé à les versionner en fonction de semver en utilisant des balises.
J'ai une situation où nuget ne fonctionne pas comme je m'y attendrais.
J'ai 3 assemblies partagées....
- Enum
- Common
- BusinessLogic
En termes de références de packages ...
- Common => Enum
- BusinessLogic => Common, Enum
la raison pour laquelle BusinessLogic dépend à la fois de Common et Enum est que je ne veux pas avoir à mettre à jour la dépendance de Common (et reconstruire, regrouper, publier) quand elle n'a pas besoin d'utiliser un nouvel enum qui a été ajouté juste pour être utilisé dans BusinessLogic
Donc, j'ajoute un énumération et je veux l'utiliser dans BusinessLogic.
Voici les versions de tout avant que je fasse cela ...
- Enum = 1.4.0
- Common = 1.2.1
- BusinessLogic = 2.0.1
J'ajoute maintenant la nouvelle valeur d'énumération que je veux utiliser dans BusinessLogic au projet Enum et je construis, regroupe, publie ...
- Enum = 1.5.0
- Common = 1.2.1
- BusinessLogic = 2.0.1
Maintenant, je fais ma modification à BusinessLogic, commit, push, package, etc ...
- Enum = 1.5.0
- Common = 1.2.1
- BusinessLogic = 2.1.0
Donc, maintenant les dépendances ressemblent à ceci ...
- Common => Enum 1.4.0
- BusinessLogic => Enum 1.5.0
Maintenant je lance ...
nuget pack BusinessLogic.csproj
Ce à quoi je m'attends, c'est que nuget voit que Common a besoin de 1.4.0 de Enum, mais que BusinessLogic a besoin de 1.5.0 et ajoute donc une dépendance dans le package pour Enum >= 1.5.0
, mais il n'y a aucune dépendance dans Enum du tout, je pense qu'il suppose que Common la remplira.
Ce comportement est-il voulu ?