Tôi có 4 dll. Nhưng tôi muốn có 1 dll đơn sẽ chứa mã từ tất cả 4 trong số các dll này. Tôi đã cố gắng để thêm một dự án và sao chép dán tất cả các mã hiện tại của tôi vào một dự án, nhưng tôi không thể.Làm thế nào để kết hợp 2 hoặc nhiều C# hội đồng thành 1 thư viện?
Trả lời
Có một cái nhìn vào ILMerge
ILMerge là một tiện ích cho việc sáp nhập nhiều cụm NET thành một hội đồng NET duy nhất.
làm thế nào để sử dụng nó? – Javidan
@Javidan Tại sao bạn không muốn chỉ nhúng dll của bạn như là một nguồn lực trong một dll? Bạn sẽ không cần phải chạm vào hội đồng, bởi vì họ có thể được ký kết, và yêu cầu từ chức hội đồng kết quả sau khi hợp nhất ở cấp IL. –
Tôi không biết phải làm gì. Tôi đã cài đặt ilmerge, nhưng không thể sử dụng.Và không biết đó là phương pháp thoải mái và an toàn để kết hợp. – Javidan
Bạn có thể sử dụng ILMerge tiện ích
Hoặc bạn có thể embed the dlls you want to merge as resources
Ở đây mẫu mã:
AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => {
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
{
Byte[] assemblyData = new Byte[stream.Length];
stream.Read(assemblyData, 0, assemblyData.Length);
return Assembly.Load(assemblyData);
}
};
Liên kết trong một bài đăng. –
Tôi đã luôn luôn có vô số vấn đề đang cố gắng tải các tệp DLL nhúng ... đã được một thời gian, nhưng IIRC vấn đề tôi gặp phải, ngay cả với 'Load (byte [])' hội đồng đã được thử tải từ đĩa. –
@pst Không có vấn đề với việc tải các assembly, vì bạn có thể tải nó trong miền ứng dụng riêng của nó, và kiểm soát truy cập và phiên bản thủ công trên nó. Và có, hội đồng trong khi nạp trong miền ứng dụng, không thể được tải lại từ đĩa hoặc viết lại bởi một hội đồng khác, đã được nạp trong bộ nhớ. Đó là do thiết kế. –
Có một công cụ từ MS: ILMerge
- 1. Làm thế nào để hợp nhất nhiều hội đồng thành một?
- 2. Chế độ xem Drupal kết hợp 2 cột thành 1?
- 3. Cách kết hợp/ghép 2 hình ảnh thành 1
- 4. Nhiều kết nối (không đồng bộ) với urllib2 hoặc thư viện http khác?
- 5. Imagemagick kết hợp 2 tệp PDF được tạo thành 1 tệp nhiều trang
- 6. Làm thế nào để kết hợp 2 Iterator trong Scala?
- 7. Thư viện hình ảnh Python: Cách kết hợp 4 hình ảnh vào lưới 2 x 2?
- 8. Kết hợp 2 lựa chọn vào 1
- 9. Làm thế nào để tăng hội Version Số 1 của 1
- 10. Thuật toán (hoặc thư viện C#) để xác định 'từ khóa' trong một tập hợp thư?
- 11. Làm thế nào để kết hợp các thư viện được chia sẻ?
- 12. Làm thế nào để chuyển đổi kết quả searchTwitter (từ thư viện (twitteR)) thành một data.frame?
- 13. Làm thế nào để kết hợp hai procs thành một?
- 14. Làm cách nào để kết hợp 2 câu lệnh chọn thành một?
- 15. Làm thế nào để tạo nhiều 1-1 của
- 16. Silverlight xác định hội đồng là "Silverlight" như thế nào?
- 17. Làm thế nào để tham khảo một không gian tên từ một hội đồng cụ thể?
- 18. Làm thế nào để liên kết tĩnh các thư viện cho một C# ClassLibrary?
- 19. Làm cách nào để biết thư viện nào liên kết?
- 20. P/Invoke hoặc C++/CLI để gói một thư viện C
- 21. Tại sao (danh sách + 1 2) đánh giá thành ('(+ 1 2) 1 2) trong Common Lisp
- 22. Nhiều thư viện CMakeLists.txt
- 23. Parse chuỗi thành số loại nullable (1 hoặc 2 liner)
- 24. Kết hợp các thư viện tĩnh
- 25. Làm thế nào để gọi thư viện c từ mã lắp ráp trên Linux?
- 26. Chuyển đổi thư viện C# thành MSTest
- 27. Làm thế nào để liên kết đến một thư viện tĩnh trong C?
- 28. Cách thích hợp để liên kết với các thư viện từ thư viện cho iPhone/CocoaTouch
- 29. Java nhiều để nhiều hiệp hội đồ
- 30. Làm thế nào để bạn tự động phân bổ bộ nhớ trong hội đồng Mac OS X?
Thêm chúng như là một tài nguyên, sử dụng Solution Explorer, mở thuộc tính dự án và thêm các assembly được yêu cầu lại Tài nguyên nhị phân –
Tôi đã tạo thư viện lớp (các hộp thoại chung). Nhưng tôi đã tìm thấy một số trong số chúng, nhưng chúng cũng nằm trong dự án thư viện lớp. Tôi đã thêm chúng làm dự án hiện tại vào thư viện lớp của tôi. sử dụng chúng tôi phải thêm từng tham chiếu – Javidan
Thêm các tham chiếu vào các tệp DLL này vào dự án, nhưng trong phần Hội đồng được tinh chỉnh của dự án, trỏ vào chúng và chọn trong Trình chỉnh sửa thuộc tính cho các hội đồng tham chiếu "Sao chép cục bộ: Sai, Kiểu nhúng: Sai", sau đó chỉ cần tải em như bình thường, từ tài nguyên nhúng trong phần Ứng dụng ngay trước khi gọi phương thức Application.Run(), trong đó các assembly được tham chiếu bởi assembly chính của bạn, Dù sao, bạn có thể tham khảo các assembly trong dự án trong thời gian thiết kế và không sao chép chúng vào lắp ráp thư mục đầu ra, thay vào đó, lưu trữ như là một nguồn lực trong một tải lắp ráp khi lắp ráp lưu trữ này tham chiếu đến –