Pour garder notre maison en ordre, je veux assembler automatiquement les licences pour les dépendances du projet dans notre documentation, plutôt que d'avoir à les ajouter manuellement.
Quelqu'un connaît-il un moyen simple de parcourir par programme un ensemble de fichiers CSPROJ et d'extraire les informations de licence pour les packages référencés sous forme de lien ou de chaîne?
licensing
packages
package-managers
nuget
Byron Ross
la source
la source
Réponses:
Une façon que je connais pour obtenir de telles informations est d'utiliser PowerShell dans la console du gestionnaire de packages , à partir de Visual Studio .
Fondamentalement, vous pouvez utiliser l' applet de commande Get-Package pour obtenir une liste des packages référencés dans un projet spécifique (ou dans une solution entière). En ce qui concerne les informations de licence pour chaque package, pour ce que j'ai vu, vous ne pouvez obtenir que l'URL de la licence et pas seulement une courte chaîne représentant le type de licence.
Voici un exemple pour une de mes solutions renvoyant une liste d'entrées, chacune comprenant l'identifiant du package et le lien vers la licence:
La sortie est quelque chose comme ceci:
D'autres éléments qui peuvent être retournés sont documentés dans la référence Nuspec , dans la section des métadonnées (par exemple la version du package, une brève description, etc.).
la source
Basé sur plusieurs sources, j'ai créé un script PowerShell qui lit tous les packages NuGet et récupère les fichiers de licence et les place dans un dossier appelé "licences". Le script doit être exécuté à la racine du projet (où se trouve le dossier "packages").
Avertissement: je ne suis pas un expert PowerShell. Courez à vos risques et périls :)
Je n'ai trouvé aucun code simple qui détecte la licence du package NuGet, sur la base de son fichier de licence. Le seul projet qui se rapproche d'une solution est le titulaire de licence , mais il s'agit d'un build en Ruby.
la source
J'ai réussi à obtenir les informations de licence à l'aide de la commande suivante:
la source