J’essaie de faire en sorte que notre processus de génération de TFS génère des packages NuGet à partir des projets de notre solution. Notre objective est de créer une source de paquet privée, de sorte que tous les autres produits internes puissent télécharger / mettre à jour le framework en utilisant NuGet.
Jusqu’ici, nous avons le processus de construction en cours d’exécution (pendant longtemps) et la gestion de versions de nos bibliothèques, et la seule chose qui rest à faire est de ” compresser tous les projets”.
Ce que j’ai essayé jusqu’à présent:
Tous semblent fonctionner, mais tous semblent échouer sur les étapes dont j’ai réellement besoin pour réussir.
Ce que je reçois réellement en effectuant les étapes mentionnées:
Aucune dépendance¹ répertoriée, aucune référence² répertoriée;
Aucune dépendance¹ répertoriée, aucune référence² répertoriée, toutes les dll du répertoire sont regroupées dans le même fichier .nupkg (sans utiliser -IncludeReferencedProjects);
(Le meilleur jusqu’à présent) Certaines dépendances¹ sont répertoriées, pas de référence², seule la dll du projet est dans le dossier lib du fichier .nupkg.
¹: Par dépendance, j’entends les dépendances de NuGet, les packages de NuGet
²: Par référence, je veux dire les références de projets de solutions.
Exemple de scénario:
Solution1.sln
– ProjectA
– ProjectB
ProjectA a une référence de projet à ProjectB. Ce que je compte faire sur le .nuspec généré:
ProjectA <- OK 1.2.0.0 < - OK ProjectA <- OK My Company <- OK My Company <- OK false Description OK <<<<<<---- NOT HAPPENING!
Certaines dépendances de nuget sont répertoriées, mais pas toutes (même lorsqu’elles se trouvent dans le fichier packages.config du projet référencé). Par exemple: j’ai un projet qui dépend de 4 autres packages NuGet, seuls 2 sont répertoriés comme dépendances du fichier .nuspec généré.
Une information important:
Ce dont j’ai besoin:
Des questions similaires que j’ai examinées:
NuGet: la commande pack n’inclut PAS les dépendances de nuget
Nuget pack uniquement, y compris les dépendances de certains projets
Pourquoi nuget n’inclut-il pas le projet référencé lors de l’emballage?
Cela s’avère être un simple problème de chemin. Les références et les dépendances n’étaient pas correctement ajoutées car j’exécutais la commande à partir d’un répertoire de travail différent.
En plus de cela, l’utilisation de -IncludeReferencedProjects était nécessaire pour append correctement tout ce qui était nécessaire.
Après cela, le processus de construction utilisant Powershell s’est terminé avec succès et tout s’est déroulé comme prévu =)
La commande pack dispose d’une option permettant d’inclure les références de projet à spécifier: http://docs.nuget.org/docs/reference/command-line-reference#Pack_Command_Options .
Vous devrez cibler le fichier csproj et je vous recommande de créer manuellement un fichier nuspec.