8

Ich möchte ein NuGet-Paket erstellen und verteilen, das bei Installation nur lösungsweit im Stammverzeichnis packages installiert wird und das Paket in der Datei .NuGet\packages.config referenziert.Wie erstelle ich ein reines NuGet-Paket auf Lösungsebene

ich einige Informationen über das NuGet Paketformat in Bezug bereits zu diesem Thema und NuGet FAQ nach soll dies möglich sein, gefunden habe, wenn man diese Richtlinien befolgen:

Was ist der Unterschied zwischen einem projekt- ist Level-Paket und ein Lösungspaket?

Ein Lösungspaket muss nur einmal in einer Lösung installiert werden, damit es für alle Projekte in der Lösung verfügbar ist. Ein Projekt-Level- -Paket muss separat in jedem Projekt installiert werden, wo Sie verwenden möchten. Für Pakete auf Lösungsebene ändert NuGet nichts in ein Projekt, während es in einem Projekt-Level-Paket tut. In der Regel installiert ein Lösungspaket neue Befehle, die innerhalb des Package Manager Console-Fensters unter aufgerufen werden können.

Ein anderer Suggested SO solution besagt, dass das oben genannte auch funktioniert haben sollte.

Die Sache ist, ich kann es nicht dazu bringen zu arbeiten. Ich habe festgestellt, dass mein Paket keine lib oder Inhaltsverzeichnisse hat:

NuGet package contents

ich alle Dateien setzte in dem tools -Ordner im Paket zu verteilen, einschließlich der init.ps1` Skript Obertrum auf installieren .

ich Visual Studio 2015 bin mit und wenn ich das Paket installiert werden soll:

  1. ich zunächst ein Projekt auszuwählen, zu installieren. Ich hatte erwartet, dass ich dies nicht spezifizieren muss, da es für die gesamte Lösung gedacht ist. :/
  2. Das Skript init.ps1 wird ausgeführt und führt die Befehle so aus, wie ich sie ausführen soll. :)
  3. Aber ein packages -Ordner wird in dem Projekt erstellt, das ich wählen musste, um die Installation zu erledigen. Ich hätte erwartet, dass der packages -Ordner im solution-root erstellt wird. :(
  4. Auch die packages.config Datei wird im Projektordner erstellt und nicht in .NuGet\packages.config, wie ich nach dem Lesen der Dokumente, die ich auf diesem gefunden habe, erwarten würde. :(

Irgendwelche Vorschläge, wie man das funktioniert? Ist dies eine Beschränkung VS 2015 oder eine Änderung von NuGet 3 (wie ich glaube, dass es in VS2015 enthalten war)?

Antwort