.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 อยู่ที่นี่