.NET Core - Thư viện chia sẻ
Trong chương này, chúng ta sẽ thảo luận về cách chia sẻ thư viện của bạn như NuGet Packageđể nó có thể được tiêu thụ trong một dự án khác. Tạo gói bắt đầu bằng mã bạn muốn đóng gói và chia sẻ với 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 như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 một gói NuGet từ thư viện của chúng ta. Để làm như vậy, hãy mở dấu nhắc lệnh và đi tới 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, bạn có thể thấy các lệnh khác nhau như mới, khôi phục và xây dựng, v.v.
Lệnh cuối cùng là pack;điều này sẽ tạo 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 ra trong thư mục bin; hãy để chúng tôi mở thư mục bin \ Debug.
Bây giờ câu hỏi là bên trong các gói NuGet là gì, để thấy rằng chúng ta có thể sử dụng NuGet Package Explorer. Bây giờ chúng ta hãy mở Trình khám phá gói NuGet.
Chọn tùy chọn đầu tiên Open a local package.
Chọn StringLibrary.1.0.0.nupkg và bấm vào Open.
Bạn có thể thấy rằng trong phần Nội dung gói chúng ta 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ần 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 sẽ thấy các tệp nguồn và *.pdbcả tệp. Nếu bạn nhấp đúp vàoStringLib.cs , bạn cũng thấy mã nguồn.
Câu hỏi đặt ra ở đây là làm cách nào có thể đị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 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êm thông tin 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ì nó dễ dàng hơn nhiều so với việc thiết lập một tài khoản trên nuget.org. Để 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 đâyhttps://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ư.
Step 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.
Step 2 - Chọn Nuget.Commandline và nhấp vào Install.
Step 3 - Bấm 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 sauhttps://dist.nuget.org/index.html và sau đó thiết lập biến môi trường.
Step 4 - Sau khi cài đặt xong, chúng ta hãy mở lại dấu nhắc lệnh và đi tới bin\Debug thư mục chứa các gói NuGet và chỉ định lệnh sau:
nuget add StringLibrary.1.0.1.nupkg -Source D:\PrivateNugetPackages
Step 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 của chúng tôi và vị trí là D:\PrivateNugetPackages, -Nguồn chỉ định nguồn gói.
Step 6 - Bạn có thể thấy rằng StringLibraryđược cài đặt; cácStringLibrary có thể được thêm vào nguồn cấp dữ liệu riêng tư.
Step 7 - Hãy để chúng tôi đến thư mục đó.
Step 8 - Bên trong 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 nằm ở đây.