Tôi muốn tạo một ứng dụng sử dụng NuGet Package NuGet.Core. Nó có một lớp được gọi là PackageBuilder mà làm cho nó có thể. Có bất kỳ mẫu/hướng dẫn/tài liệu nào có sẵn không?Cách tạo Gói NuGet bằng NuGet.Core?
Trả lời
Tôi không biết bất kỳ hướng dẫn hoặc tài liệu nào về cách xây dựng gói NuGet bằng NuGet.Core. Thay vào đó, tôi sẽ xem xét mã nguồn cho NuGet.exe. Nó có một gói gói xây dựng một gói từ tệp .nuspec. PackCommand class, sử dụng lớp PackageBuilder, sẽ cho bạn thấy những gì bạn cần làm.
Tôi không thể tìm thấy PackCommand trong Nuget.Core. Bạn có thể giúp tôi không? – Rookian
PackCommand nằm trong không gian tên NuGet.Commands trong hội đồng NuGet.exe. –
Một ví dụ rất đơn giản:
- tạo ra một thư mục chứa các tập tin mà bạn muốn trong gói của bạn.
Viết một số mã như thế này:
ManifestMetadata metadata = new ManifestMetadata() { Authors = "mauvo", Version = "1.0.0.0", Id = "myPackageIdentifier", Description = "A description", }; PackageBuilder builder = new PackageBuilder(); builder.PopulateFiles("folderPath/", new[] {new ManifestFile() {Source = "**"}}); builder.Populate(metadata); using(FileStream stream = File.Open(packagePath, FileMode.OpenOrCreate)) { builder.Save(stream); }
Tại sao đây không phải là câu trả lời được chấp nhận? Câu trả lời hiện tại có vẻ giống như một bình luận. – glopes
Một ví dụ được cải tiến dựa trên mã của David. Thay đổi:
- Tất cả các tệp trong thư mục ngoại trừ * .nuspec được thêm vào gói.
Hàng xác định tên tệp gói.
ManifestMetadata metadata = new ManifestMetadata() { Authors = "mauvo", Version = "1.0.0.0", Id = "myPackageIdentifier", Description = "A description", }; PackageBuilder builder = new PackageBuilder(); var files = Directory.GetFiles(packagePath, "*", SearchOption.AllDirectories) .Where(f => !f.EndsWith(".nuspec")) .Select(f => new ManifestFile { Source = f, Target = f.Replace(path, "") }) .ToList(); builder.PopulateFiles("", files); builder.Populate(metadata); string packageFile = Path.Combine(packagePath, builder.GetFullName()) + ".nupkg"; using(FileStream stream = File.Open(packageFile, FileMode.OpenOrCreate)) { builder.Save(stream); }
- 1. Cách tạo gói NuGet cấp giải pháp?
- 2. Thử nghiệm gói NuGet
- 3. Gói Bootstrap Nuget
- 4. Tạo gói NuGet hiển thị thông báo cập nhật
- 5. Gói NuGet: cách thêm tham chiếu vào dịch vụ web?
- 6. gói NuGet với sourcecode mà không SymbolSource.org
- 7. Gói Nuget thực sự là lệnh exe?
- 8. quản lý gói nuget không đồng bộ
- 9. Thực hiện StyleCop MSBUILD từ Gói NuGet
- 10. Thiếu gói khiến NuGet khôi phục gói thành thất bại
- 11. Gói NuGet cho Microsoft.WindowsAzure.ServiceRuntime ở đâu?
- 12. NuGet không nhận được gói thiếu
- 13. Mô-đun con Git và gói Nuget
- 14. Gói sạch Nuget Xóa/Cài đặt
- 15. RavenDB và SignalR Nuget Xung đột phụ thuộc gói
- 16. NuGet - Không nhìn thấy phép NuGet tải gói còn thiếu trong quá trình xây dựng
- 17. Tạo một gói NuGet từ nhiều dự án trong một giải pháp
- 18. gói nuget có biểu tượng thiếu thư mục "nội dung"
- 19. lỗi cập nhật cơ sở dữ liệu - Gói NuGet (EntityFramework.SqlMigrations)
- 20. Tạo gói NuGet cài đặt tham chiếu với Sao chép cục bộ thành false
- 21. Tôi nên tạo hoặc tải lên gói NuGet 32 bit và 64 bit như thế nào?
- 22. Tạo gói nuget cho một giải pháp với nhiều dự án
- 23. Tự động tạo gói NuGet như một phần của quá trình xây dựng
- 24. Quản lý Gói NuGet không hiển thị trên menu
- 25. Có sự phụ thuộc vào gói nuget cụ thể
- 26. Xây dựng thất bại trong teamcity cho gói Nuget
- 27. Gói NuGet tự tạo nên được đặt trong điều khiển phiên bản?
- 28. Nuget có tạo tệp nhật ký lỗi khi cài đặt gói không?
- 29. có trình quản lý gói cho Xcode không? (như NuGet)
- 30. nhân vật trái phép trên đường đi cho gói NuGet
Có vẻ như tài liệu duy nhất là [một bài đăng blog] (http://blog.nuget.org/20130520/Play-with-packages.html). Đó là hầu như không đủ cho những người đang cố gắng sử dụng thư viện. –
Yêu cầu lịch sự về tài liệu https://github.com/NuGet/Home/issues/2425 –