Erstellen der Definition

Einige Assemblies werden von uns nicht kompiliert ( z.B Keytech.PLM.Shared.dll ).
Um diese Assemblies ebenfalls per NuGet verfügbar zu machen empfiehlt sich hier die Erstellung einer *.nuspec ( beinhaltet die Metadaten )

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
	<id>DevExpress.Printing.Core</id> <!-- Unter diesem Namen zu finden -->
	<version>17.1.3.0</version> <!-- Version ist hierbei egal, diese wird vom NuGet Task gesetzt -->
	<authors>Developer Express Inc.</authors>
	<licenseUrl>https://www.devexpress.com/Support/EULAs/NetComponents.xml</licenseUrl>
	<iconUrl>https://secure.gravatar.com/avatar/abb60c275d6f175df3393a6369988c3a?s=32&amp;r=g&amp;d=retro</iconUrl>
	<requireLicenseAcceptance>false</requireLicenseAcceptance>
	<tags>DevExpress wpf Printing</tags>
	<description>This package provides core functionality to cross-platform DevExpress controls.
        </description>
    <dependencies>
      <dependency id="DevExpress.Pdf.Core" version="[17.1.3.0]" /> <!-- Diese Dependency wird dann ebenfalls aus NuGet gezogen -->
      <dependency id="DevExpress.Data" version="[17.1.3.0]" /> <!-- version in [ ] zieht exakt diese Version, ansonsten mindestens Diese -->
    </dependencies>
  </metadata>
  <files>
     <file src="DevExpress.Printing.v17.1.Core.dll" target="lib"></file> <!-- Die dll, die das NuGet später liefern soll -->
  </files>
</package>
 

Packen des *.nupkg

Für alle folgenden Operationen wird die NuGet CLI benötigt. Im nächsten Schritt wird das NuGet Paket geschnürt

$ /path/to/nuget pack <nuspecFile>.nuspec -version [Version] [-o OutputDirectory]
# Am Beispiel oben
$ nuget pack DevExpress.Printing.Core.nuspec -version 1.3.3.7 -OutputDirectory /c/temp/
    Es wird versucht, das Paket aus "DevExpress.Printing.Core.nuspec" zu erstellen.
    Successfully created package 'C:/temp/DevExpress.Printing.Core.1.3.3.7.nupkg'.
    WARNUNG: NU5101: The assembly 'lib\DevExpress.Printing.v17.1.Core.dll' is placed directly under 'lib' folder. It is recommended 
    that assemblies be placed inside a framework-specific folder. Move it into a framework-specific folder.
    WARNUNG: NU5125: The 'licenseUrl' element will be deprecated. Consider using the 'license' element instead.

Wird der Schalter für OutputDirectory weggelassen, landet die gepackte *.nupkg im aktuellen Arbeitsverzeichnis.

Push auf den NuGet Host

$  dotnet nuget push DevExpress.Printing.Core.1.3.3.7.nupkg -s nugethost
Pushing DevExpress.Printing.Core.1.3.3.7.nupkg to 'https://nuget.my.feed'...
  PUT https://nuget.my.feed
  Created https://nuget.my.feed 360ms
Your package was pushed.

Weitere Informationen

Das NuGet-Cli ist in der Msdn-Wiki dokumentiert