Trong chương này, chúng ta sẽ thảo luận cách chia sẻ thư viện của bạn dưới dạng Gói NuGet để nó có thể được sử dụng trong một dự án khác. Việc tạo gói bắt đầu bằng mã bạn muốn đóng gói và chia sẻ với những người khác, thông qua thư viện nuget.org công cộng hoặc thư viện riêng trong tổ chức của bạn. Gói này cũng có thể bao gồm các tệp bổ sung, chẳng hạn như tệp readme được hiển thị khi gói được cài đặt và có thể bao gồm các chuyển đổi đối với các tệp dự án nhất định. Bây giờ chúng ta hãy xem xét một ví dụ đơn giản trong đó chúng ta sẽ tạo gói NuGet từ thư viện của mình. Để làm như vậy, hãy mở dấu nhắc lệnh và chuyển đến thư mục chứa tệp project.json của dự án thư viện của bạn
Bây giờ chúng ta hãy chạy lệnh sau. : dotnet help
Cuối cùng, bạn có thể thấy các lệnh khác nhau như lệnh mới, khôi phục và xây dựng, v.v.
Lệnh cuối cùng là gói; điều này sẽ tạo ra một gói NuGet. Bây giờ chúng ta hãy thực hiện lệnh sau.
dotnet pack
Bây giờ bạn có thể thấy rằng các gói NuGet được tạo trong thư mục bin; chúng ta hãy mở thư mục bin\Debug.
Bây giờ câu hỏi đặt ra là bên trong các gói NuGet có gì, để biết được điều đó chúng ta có thể sử dụng NuGet Package Explorer. Bây giờ chúng ta hãy mở NuGet Package Explorer.
Chọn tùy chọn đầu tiên Mở gói cục bộ .
Chọn StringLibrary.1.0.0.nupkg và nhấp vào Mở
Bạn có thể thấy rằng trong phần Nội dung gói, chúng tôi chỉ có StringLibrary.dll. Trong phần Siêu dữ liệu gói, bạn sẽ thấy một chút thông tin về thư viện này như Id, Phiên bản và tất cả các phụ thuộc. Bây giờ chúng ta hãy mở StringLibrary.1.0.0.symbols.nupkg .
Trong gói NuGet này, bạn cũng sẽ thấy các tệp nguồn và tệp *.pdb . Nếu bạn nhấp đúp vào tệp StringLib.cs , bạn cũng sẽ thấy mã nguồn.
Câu hỏi ở đây là, làm cách nào để định cấu hình siêu dữ liệu như phiên bản, tác giả và mô tả, v.v. Tệp project.json được sử dụng trên các dự án .NET Core để xác định siêu dữ liệu dự án, thông tin biên dịch và các thành phần phụ thuộc. Bây giờ chúng ta hãy mở tệp project.json và thêm thông tin bổ sung sau.
{
"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": {}
}
}
Bây giờ bạn có thể xem thông tin bổ sung như tên tác giả, mô tả và phiên bản được thêm vào đây. Hãy để chúng tôi lưu tệp này, xây dựng dự án thư viện, sau đó thực hiện lại lệnh “dotnet pack”.
Bên trong thư mục bin\Debug, bạn có thể thấy rằng các gói StringLibrary NuGet được sản xuất với phiên bản 1.0.1; hãy để chúng tôi mở nó trong NuGet Package Explorer.
Bạn sẽ thấy siêu dữ liệu được cập nhật. Câu hỏi bây giờ là, làm thế nào chúng ta có thể sử dụng nó trong một gói khác.
Chúng tôi cần bắt đầu bằng cách xuất bản ở đâu đó trong nguồn cấp dữ liệu NuGet và sau đó chúng tôi có thể sử dụng nó trong một dự án khác.
Có hai tùy chọn để xuất bản siêu dữ liệu đã cập nhật –
- Xuất bản nó lên nuget.org
- Đẩy siêu dữ liệu vào nguồn cấp dữ liệu NuGet riêng tư
Ở đây, chúng tôi sẽ sử dụng nguồn cấp dữ liệu NuGet riêng tư vì việc thiết lập tài khoản trên nuget.org dễ dàng hơn nhiều. Để tìm hiểu cách xuất bản gói của bạn lên nuget.org, bạn có thể làm theo tất cả các nguyên tắc được chỉ định tại đây https://docs.microsoft.com/en-us/nuget/create-packages/publish-a-package . Làm theo các bước sau để đẩy siêu dữ liệu đã cập nhật vào nguồn cấp dữ liệu NuGet riêng tư.
Bước 1 – Để bắt đầu, chúng ta cần tiện ích dòng lệnh nuget và chúng ta phải cài đặt nó. Bây giờ chúng ta hãy mở Trình quản lý gói NuGet và tìm kiếm nuget.commandline.
Bước 2 – Chọn Nuget.Commandline và nhấp vào Cài đặt
Bước 3 – Nhấp vào OK để cài đặt Nuget.Commandline. Bạn cũng có thể cài đặt thủ công bằng cách tải xuống từ Url sau https://dist.nuget.org/index.html rồi thiết lập biến môi trường.
Bước 4 – Sau khi quá trình cài đặt hoàn tất, chúng ta hãy mở lại dấu nhắc lệnh và chuyển đến thư mục bin\Debug nơi chứa các gói NuGet và chỉ định lệnh sau :
nuget add StringLibrary.1.0.1.nupkg -Source D:\PrivateNugetPackages
Bước 5 – Trong lệnh trên, chúng tôi thêm gói StringLibrary.1.0.1.nupkg vào nguồn cấp dữ liệu riêng tư của chúng tôi và vị trí là D:\PrivateNugetPackages , -Source chỉ định nguồn gói.
Bước 6 – Bạn có thể thấy rằng StringLibrary đã được cài đặt; StringLibrary có thể được thêm vào nguồn cấp dữ liệu riêng tư.
Bước 7 – Hãy để chúng tôi đi đến thư mục đó.
Bước 8 – Bên trong thư mục stringlibrary , bạn sẽ thấy một thư mục khác có tên phiên bản và đây là 1.0.1.
Gói NuGet được đặt tại đây