.NET Core - การแชร์ไลบรารี

ในบทนี้เราจะพูดถึงวิธีการแบ่งปันห้องสมุดของคุณเป็น NuGet Packageเพื่อให้สามารถใช้ภายในโครงการอื่นได้ การสร้างแพ็คเกจเริ่มต้นด้วยรหัสที่คุณต้องการจัดแพ็กเกจและแชร์กับผู้อื่นไม่ว่าจะผ่านแกลเลอรี nuget.org สาธารณะหรือแกลเลอรีส่วนตัวภายในองค์กรของคุณ แพคเกจยังสามารถรวมไฟล์เพิ่มเติมเช่นไฟล์readme ที่แสดงเมื่อติดตั้งแพ็กเกจและสามารถรวมการแปลงไฟล์โปรเจ็กต์บางไฟล์

ตอนนี้ให้เราพิจารณาตัวอย่างง่ายๆที่เราจะสร้างแพ็คเกจ NuGet จากห้องสมุดของเรา ในการทำเช่นนั้นให้เปิดพรอมต์คำสั่งและไปที่โฟลเดอร์ที่มีไฟล์ project.json ของโปรเจ็กต์ไลบรารีของคุณ

ให้เรารันคำสั่งต่อไปนี้

dotnet help

ในตอนท้ายคุณจะเห็นคำสั่งต่างๆเช่นใหม่กู้คืนและสร้าง ฯลฯ

คำสั่งสุดท้ายคือ pack;สิ่งนี้จะสร้างแพ็คเกจ NuGet ตอนนี้ให้เราดำเนินการคำสั่งต่อไปนี้

dotnet pack

ตอนนี้คุณจะเห็นว่าแพ็คเกจ NuGet ถูกสร้างขึ้นในโฟลเดอร์ bin ให้เราเปิดโฟลเดอร์ bin \ Debug

ตอนนี้คำถามคือสิ่งที่อยู่ในแพ็คเกจ NuGet เพื่อดูว่าเราสามารถใช้ NuGet Package Explorer ได้ ให้เราเปิด NuGet Package Explorer

เลือกตัวเลือกแรก Open a local package.

เลือกไฟล์ StringLibrary.1.0.0.nupkg แล้วคลิก Open.

คุณจะเห็นว่าในส่วนเนื้อหาแพ็คเกจเรามีเฉพาะ StringLibrary.dll ในส่วนข้อมูลเมตาของแพ็กเกจคุณจะเห็นข้อมูลเล็กน้อยเกี่ยวกับไลบรารีนี้เช่น Id เวอร์ชันและการอ้างอิงทั้งหมด

ให้เราเปิดไฟล์ StringLibrary.1.0.0.symbols.nupkg.

ในแพ็คเกจ NuGet นี้คุณจะเห็นไฟล์ต้นฉบับและไฟล์ *.pdbไฟล์ด้วย หากคุณดับเบิลคลิกที่ไฟล์StringLib.cs คุณจะเห็นซอร์สโค้ดด้วย

คำถามคือวิธีกำหนดค่าข้อมูลเมตาเช่นเวอร์ชันผู้เขียนและคำอธิบาย ฯลฯ

ไฟล์ project.json ใช้กับโปรเจ็กต์. NET Core เพื่อกำหนดข้อมูลเมตาของโปรเจ็กต์ข้อมูลคอมไพล์และการอ้างอิง ตอนนี้ให้เราเปิดไฟล์ project.json และเพิ่มข้อมูลเพิ่มเติมต่อไปนี้

{ 
   "authors": [ "Mark Junior" ], 
   "description": "String Library API", 
   "version" : "1.0.1-*", 
   "supports": {}, 
   
   "dependencies": { 
      "Microsoft.EntityFrameworkCore": "1.1.0", 
      "Microsoft.NETCore.Portable.Compatibility": "1.0.1", 
      "NETStandard.Library": "1.6.0", 
      "System.Runtime.Serialization.Json": "4.0.3", 
      "System.Runtime.Serialization.Primitives": "4.3.0" 
   }, 
   "frameworks": { 
      "netstandard1.3": {} 
   } 
}

ตอนนี้คุณสามารถดูข้อมูลเพิ่มเติมเช่นชื่อผู้แต่งคำอธิบายและเวอร์ชันที่เพิ่มได้ที่นี่ ให้เราบันทึกไฟล์นี้สร้างโปรเจ็กต์ไลบรารีจากนั้นเรียกใช้คำสั่ง“ dotnet pack” อีกครั้ง

ภายในโฟลเดอร์ bin \ Debug คุณจะเห็นว่าแพ็กเกจ StringLibrary NuGet ถูกสร้างขึ้นด้วยเวอร์ชัน 1.0.1; ให้เราเปิดใน NuGet Package Explorer

คุณจะเห็นข้อมูลเมตาที่อัปเดต คำถามคือเราจะใช้มันในแพ็คเกจอื่นได้อย่างไร

เราต้องเริ่มต้นด้วยการเผยแพร่ที่ใดที่หนึ่งในฟีด NuGet จากนั้นเราสามารถใช้มันในโครงการอื่นได้

มีสองตัวเลือกในการเผยแพร่ข้อมูลเมตาที่อัปเดต -

  • เผยแพร่ไปยัง nuget.org
  • พุชข้อมูลเมตาไปยังฟีด NuGet ส่วนตัว

ที่นี่เราจะใช้ฟีด NuGet ส่วนตัวเพราะง่ายกว่าการตั้งค่าบัญชีบน nuget.org มาก หากต้องการเรียนรู้วิธีการเผยแพร่แพ็คเกจของคุณไปยัง nuget.org คุณสามารถปฏิบัติตามหลักเกณฑ์ทั้งหมดที่ระบุไว้ที่นี่https://docs.microsoft.com/en-us/nuget/create-packages/publish-a-package.

ทำตามขั้นตอนเหล่านี้เพื่อพุชข้อมูลเมตาที่อัปเดตไปยังฟีด NuGet ส่วนตัว

Step 1- ในการเริ่มต้นเราต้องมียูทิลิตี้ nuget commandline และเราต้องติดตั้ง ให้เราเปิด NuGet Package Manager แล้วค้นหา nuget.commandline

Step 2 - เลือก Nuget.Commandline แล้วคลิก Install.

Step 3 - คลิก OKเพื่อติดตั้ง Nuget.Commandline คุณยังสามารถติดตั้งด้วยตนเองได้โดยดาวน์โหลดจาก URL ต่อไปนี้https://dist.nuget.org/index.html จากนั้นตั้งค่าตัวแปรสภาพแวดล้อม

Step 4 - เมื่อการติดตั้งเสร็จสิ้นให้เราเปิดพรอมต์คำสั่งอีกครั้งและไปที่ไฟล์ bin\Debug โฟลเดอร์ซึ่งเป็นที่ตั้งของแพ็คเกจ NuGet และระบุคำสั่งต่อไปนี้ -

nuget add StringLibrary.1.0.1.nupkg -Source D:\PrivateNugetPackages

Step 5 - ในคำสั่งด้านบนเราเพิ่มแพ็คเกจ StringLibrary.1.0.1.nupkg ลงในฟีดส่วนตัวของเราและตำแหน่งคือ D:\PrivateNugetPackages, -Source ระบุแหล่งที่มาของแพ็กเกจ

Step 6 - คุณจะเห็นว่าไฟล์ StringLibraryติดตั้ง; ที่StringLibrary สามารถเพิ่มลงในฟีดส่วนตัวได้

Step 7 - ให้เราไปที่โฟลเดอร์นั้น

Step 8 - ภายใน stringlibrary คุณจะเห็นโฟลเดอร์อื่นที่มีชื่อเวอร์ชันและนี่คือ 1.0.1

แพ็คเกจ NuGet อยู่ที่นี่