Kompilierte Bibliotheken zu einem NuGet-Paket hinzufügen
Erst neulich habe ich einen Fehler bezüglich eines NullReferenceException in einer fehlenden Bibliothek gefunden, der dort hätte sein sollen, da er aus einem Nuget-Paket stammt, das wir hochgeladen haben.
Im Grunde habe ich eine Bibliotheksklasse kompiliert, die auf einige Projekte verweist. In der Build-Phase wurden die dll-Dateien zum Ordner bin hinzugefügt, aber wenn packaging als Nuget-Paket erstellt und in einer anderen Lösung installiert wird, sind die dll-Dateien, auf die ich verwiesen habe und die in den bin-Ordner kopiert werden sollten, nicht vorhanden.
Wie man es löst
Die Lösung dieses Problems ist ziemlich einfach: Sie müssen die Datei nuspec aktualisieren und für jede der Bibliotheken, die Sie kopieren möchten, die Datei file im Teil files hinzufügen.
<?xml version="1.0" encoding="utf-8"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<owners>$author$</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<projectUrl>$projectUrl$</projectUrl>
<iconUrl>$projectIconUrl$</iconUrl>
<description>$description$</description>
<releaseNotes></releaseNotes>
<copyright>$copyright$</copyright>
<tags></tags>
</metadata>
<files>
<file src="bin\Release\MyFile1.dll" target="lib\net47" />
<file src="bin\Release\MyFile2.dll" target="lib\net47" />
<file src="bin\Release\MyFile3.dll" target="lib\net47" />
<file src="bin\Release\MyFile4.dll" target="lib\net47" />
</files>
</package>