2014-09-24 29 views
6

Thư viện máy khách Windows Azure rất lớn (vài MB) và tôi có một dự án khá nhỏ (theo thứ tự vài trăm KB) chỉ sử dụng một vài hàm từ chúng. Có cách nào để tôi liên kết trong những chức năng tại thời gian xây dựng, do đó các DLL kết quả không nhận được cực kỳ cồng kềnh, và tôi không phải liên kết các chức năng trong thời gian chạy?Liên kết tĩnh trong C#?

Một cái gì đó như thế này http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx, nhưng tôi nhận được ấn tượng rằng các gói trong toàn bộ DLL.

Cảm ơn!

Chỉnh sửa: Bởi vì có những hạn chế bên ngoài về kích thước của DLL phân phối cuối cùng, lạm phát nó nhiều là một phương sách cuối cùng tuyệt đối - tùy chọn duy nhất khác mà tôi biết là chỉ sao chép mã tôi sử dụng đúng nguyên văn.

+0

Để diễn giải @BradleyDotNET: Số – spender

+0

@spender Chuyển đổi sang một câu trả lời, nói rằng điều tương tự :) – BradleyDotNET

+0

1 cho các kỹ thuật từ Jeffrey Richter – kennyzx

Trả lời

5

Trong một từ: Không.

Hãy nhớ rằng mặc dù bạn chỉ sử dụng một vài chức năng, có thể có nhiều chức năng khác trong thư viện mà các chức năng đó sử dụng, mà bạn thậm chí không biết!

Bạn không thể làm điều này, bởi vì bạn không có quyền truy cập vào tất cả các phụ thuộc. Cũng nên nhớ rằng những người phụ thuộc đó thậm chí có thể cư trú trong một DLL khác và bạn cần phải bao gồm rằng toàn bộ DLL của cho cùng một lý do.

+0

Vì vậy, ngay cả khi tập hợp các chức năng tôi sử dụng, thậm chí gián tiếp, là một tập con nhỏ của tất cả các chức năng được cung cấp bởi thư viện, tôi cần phải lấy một tập hợp những thứ không sử dụng và không liên quan để sử dụng bất kỳ chức năng nào? – bfops

+0

@bfops Yep. Các nhà thiết kế đã chọn để gói gọn tất cả những gì vào một thư viện, và có thực sự không có nhiều bạn có thể làm gì về nó. Nếu đó là * thư viện * của bạn, bạn có thể chỉ sao chép các chức năng và các phụ thuộc vào dự án của bạn, nhưng vì nó không phải là, bạn đang khá nhiều khó khăn. – BradleyDotNET

+0

Đây không phải là vấn đề với C#? Trong C hoặc C++, tôi khá chắc chắn rằng tôi có thể liên kết tĩnh một thư viện và chỉ các hàm thực sự được sử dụng sẽ kết thúc trong tệp thực thi cuối cùng. Các tùy chọn của tôi ở đây là sự sao chép hoặc mã hóa lớn. – bfops

3

Những gì bạn đang tìm kiếm âm thanh rất giống như .NET Native. Thật không may cho bạn, bản xem trước duy nhất của nó và ngay bây giờ chỉ hoạt động với Ứng dụng cửa hàng cho thiết bị. Báo cáo như thế này

Chúng tôi sẽ tiếp tục phát triển và cải thiện biên soạn bản địa trong phạm vi của các ứng dụng .NET

có thể được tìm thấy trên internet nhưng không cụ thể về ứng dụng web \ Azure.

Cho đến lúc đó, câu trả lời là Không

Các vấn đề liên quan