Ajout de bibliothèques compilées à un package NuGet

· 1 min de lecture

L’autre jour, j’ai trouvé un bug concernant un NullReferenceException sur une bibliothèque manquante qui aurait dû être là puisqu’il provient d’un package nuget que nous avons téléchargé.

Fondamentalement, j’ai compilé une classe de bibliothèque faisant référence à quelques projets. Lors de la phase de construction, il ajouterait les fichiers dll au dossier bin, mais lorsque packaging en tant que package nuget et les installerait dans une autre solution, les fichiers dll que j’ai référencés et qui doivent être copiés dans le dossier bin ne sont pas là.

Comment le résoudre

Résoudre ce problème est assez simple, vous devez mettre à jour le fichier nuspec et pour chacune des bibliothèques que vous souhaitez copier, ajouter le file dans la partie files.

<?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>