Nupack est un moyen facile de produire un package NuGet pour .NET 4.0+ basé sur AssemblyInfo ou NUSPEC lors de la construction avec Visual Studio. Il se matérialise comme un package NuGet.
Lorsque Nupack est référence par un projet, aucune dépendance n'est créée, il n'y a qu'une nouvelle étape de construction pour emballer automatiquement la sortie du projet dans un package NuGet avec le nom du projet en tant qu'ID.
Lorsqu'un fichier .nuspec est détecté dans le cadre du projet, Nupack respecte la spécification et ne s'applique pas de configuration automatique pour produire le package NuGet attendu.
Produisez une bibliothèque simple (dossier lib) avec des dépendances du package NuGet. Ce modèle s'applique automatiquement lorsqu'il n'y a pas de fichier .nuspec détecté pour le projet de bibliothèque de types.
Lorsque le package est basé sur l'application de console et que .Nuspec n'est pas déclaré, un répertoire de construction est défini avec un fichier .targets pour fournir un moyen simple d'ajouter une étape d'action de construction comme build avec 5 arguments:
Les dépendances peuvent être un packages NuGet, des références de projet, etc ... elles doivent être récursivement dans le package NuGet généré avec un formulaire adéquat.
Le processus NUGET ne propage pas la documentation XML et les ressources de dépendance en sortie et ne peut pas être considérée dans le processus d'emballage NUPACK. Permettre à Nupack de les propager aidant automatiquement à conserver une structure et une documentation propres dans chaque nœud.
Nupack peut fournir une bibliothèque pour développer un plugin en tant que package NuGet. Il détectera le plugin à partir de package.config et le chargera à partir du dossier Nupack pour ajouter un comportement supplémentaire à Nupack. Le plugin sera appelé avec des arguments transmis à Nupack et produira un Packagebuilder à partir de PackageBuilder d'origine avant d'enregistrer le résultat. Le plugin est éliminé après la création de NuGet.
Nupack doit créer un package spécifique pour stocker le plugin (bibliothèque) dans le dossier Nupack lorsque le projet référence Nupack.Extension.
Lorsque Nupack est référencé par une application de console nommée [Library] .Optimizer et référence à une bibliothèque nommée [bibliothèque], un modèle Optimizer est effectué. Le package NuGet généré contient le dossier [bibliothèque] .dll dans lib et [bibliothèque] .optimizer.exe est placé dans le dossier de construction avec un fichier .targets pour exécuter Optimizer sur la constructeur postal avec les mêmes arguments que l'action de génération standard pour le modèle d'application de console. Le package NuGet prendra le nom [de la bibliothèque] en tant qu'ID. Cela signifie que le modèle n'est pas fait si [la bibliothèque] est un producteur NuGet. Le modèle Optimizer sera un point d'entrée pour réécrire IL par exemple ou préparer quelque chose basé sur [bibliothèque] .dll Utilisation.
Visual Studio 2017 Modification du modèle d'intégration NuGet. Nupack doit être mis à jour pour prendre en charge Visual Studio 2017.
Une chose frustrante avec Nuget est d'avoir des métadonnées propres et complètes. Malheureusement, AssemblyInfo ne fournit pas de moyen d'exposer tous les besoins de NuGet. En d'autres termes, il est souvent nécessaire de déclarer à plusieurs reprises les mêmes informations qui provoquent un problème de synchronisation et d'ajouter une surcharge de maintenance. L'utilisation de l'API GitHub.com pour compléter automatiquement la création NuGet peut être une bonne chose pour rester réactive.