Ich habe die folgende Zeile in den CI-Build eingefügt, um auf jedem Build ein privates NuGet-Paket zu erstellen:
%Vor% Die AssemblyInfo wird gelesen (einschließlich der Versionsnummer ) und ein NuGet-Paket wird erstellt.
Ich möchte, dass das Paket die .pdb-Dateien enthält und keinen Ordner "Content" enthält (also nur die 'lib').
Wie kann ich den Befehl ändern, um dies zu tun?
Leider können Sie die Inhaltsdateien nicht ausschließen und enthalten die .pdb-Dateien beim Packen über das Projekt. Du könntest das eine oder andere tun.
Machen Sie zuerst eine Datei nuspec (der Befehl nuget spec
macht das schnell) und legen Sie sie ab am selben Ort wie Ihr Projekt. Wenn Sie Ihr Projekt packen, behandelt NuGet.exe die Spezifikation als Ergänzung zu den Informationen Ihres Projekts.
Um den Inhaltsordner zu entfernen, wird beim Packen eines Projekts, das ebenfalls eine .nuspec-Datei enthält, ein leerer <files />
-Knoten in der Spezifikation darauf hinweisen, dass keine Inhaltsdateien vorhanden sein sollen, selbst wenn sie im Projekt vorhanden sind.
Um die Debug-Dateien einzuschließen, fügen Sie Ihrer Spezifikation so etwas hinzu:
%Vor%aber das würde dem Tool sagen, dass Sie tun Inhalt haben, und dann würde es auch alle anderen Dateien hinzufügen. Sie könnten vielleicht ein Symbolpaket für Ihr Projekt erstellen stattdessen.
Eine weitere Option wäre, ausschließlich aus der Spezifikation ( nuget pack Test.nuspec
) zu erstellen und genau die Dateien anzugeben, die Sie einschließen möchten. Es ist zeitaufwendiger, aber Sie haben die vollständige Kontrolle über den Inhalt des Pakets.
Für die Inhaltsdateien, die Sie nicht packen möchten, benötigen Sie eine Build Action von "Content" in Ihrem Projekt (im Eigenschaftenfenster der Datei in Visual Studio, wenn dies Ihre IDE ist) ?
Wenn es akzeptabel ist, die Build-Aktion auf "None" (oder irgendetwas anderes) zu ändern, wird es nicht im Inhaltsordner landen.
Tags und Links .net visual-studio nuget nuget-package