Um unser Haus in Ordnung zu halten, möchte ich Lizenzen für Projektabhängigkeiten in unserer Dokumentation automatisch zusammenstellen, anstatt sie manuell hinzufügen zu müssen.
Kennt jemand eine einfache Möglichkeit, einen Satz von CSPROJ-Dateien programmgesteuert zu durchlaufen und die Lizenzinformationen für die angegebenen Pakete als Link oder Zeichenfolge zu extrahieren?
licensing
packages
package-managers
nuget
Byron Ross
quelle
quelle
Antworten:
Eine Möglichkeit, solche Informationen abzurufen, ist die Verwendung von PowerShell in der Package Manager-Konsole in Visual Studio .
Grundsätzlich können Sie das Cmdlet Get-Package verwenden , um eine Liste der Pakete abzurufen, auf die in einem bestimmten Projekt (oder in einer gesamten Lösung) verwiesen wird. In Bezug auf die Lizenzinformationen für jedes Paket können Sie für das, was ich gesehen habe, nur die Lizenz-URL erhalten und nicht nur eine kurze Zeichenfolge, die den Lizenztyp darstellt.
Hier ist ein Beispiel für eine Lösung von mir, die eine Liste von Einträgen zurückgibt, die jeweils aus der Paketkennung und dem Link zur Lizenz besteht:
Die Ausgabe sieht ungefähr so aus:
Weitere Elemente, die zurückgegeben werden können, sind in der Nuspec-Referenz im Abschnitt mit den Metadaten dokumentiert (z. B. die Version des Pakets, eine kurze Beschreibung usw.).
quelle
Basierend auf mehreren Quellen habe ich ein PowerShell-Skript erstellt, das alle NuGet-Pakete liest, die Lizenzdateien abruft und in einem Ordner namens "Lizenzen" ablegt. Das Skript sollte im Stammverzeichnis des Projekts ausgeführt werden (in dem sich der Ordner "packages" befindet).
Haftungsausschluss: Ich bin kein PowerShell-Experte. Laufen Sie auf eigenes Risiko :)
Ich konnte keinen einfachen Code finden, der anhand der Lizenzdatei erkennt, über welche Lizenz das NuGet-Paket verfügt. Das einzige Projekt, das einer Lösung nahe kommt, ist der Lizenznehmer . Dieses Projekt wurde jedoch in Ruby erstellt.
quelle
Ich konnte die Lizenzinformationen mit dem folgenden Befehl abrufen:
quelle