إضافة المكتبات المترجمة إلى حزمة NuGet

· 1 دقيقة قراءة

منذ بضعة أيام وجدت خطأً بشأن NullReferenceException في مكتبة مفقودة كان من المفترض أن يكون موجودًا لأنه يأتي من حزمة nuget التي قمنا بتحميلها.

في الأساس، قمت بتجميع فصل مكتبة يشير إلى بعض المشاريع. في مرحلة الإنشاء، سيتم إضافة ملفات dll إلى المجلد bin ولكن عندما يكون packaging كحزمة nuget وتثبيتها في حل آخر، فإن ملفات dll التي أشرت إليها والتي يجب نسخها إلى مجلد bin، ليست موجودة.

كيفية حلها

حل هذه المشكلة بسيط جدًا، يجب عليك تحديث ملف nuspec ولكل مكتبة تريد نسخها، أضف file في الجزء 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>