Kể từ phiên bản 3.0, .NET cài đặt một loạt các "hội đồng tham chiếu" khác nhau trong C: \ Program Files \ Reference Assemblies \ Microsoft ...., để hỗ trợ các cấu hình khác nhau (nói hồ sơ khách hàng .NET 3.5, hồ sơ Silverlight). Mỗi trong số đó là một assembly .NET thích hợp chỉ chứa siêu dữ liệu - không có mã IL - và mỗi assembly được đánh dấu bằng ReferenceAssemblyAttribute
. Siêu dữ liệu bị hạn chế đối với các loại và thành viên có sẵn trong hồ sơ hiện hành - đó là cách intellisense hiển thị tập hợp các loại và thành viên bị hạn chế. Các hội đồng tham chiếu không được sử dụng trong thời gian chạy.Tôi làm cách nào để tạo và sử dụng .NET Reference-only 'Reference Assembly'?
Tôi đã học được một chút về nó từ this blog post.
Tôi muốn tạo và sử dụng một bộ tham chiếu như vậy cho thư viện của mình.
- Làm cách nào để tạo một hội đồng chỉ siêu dữ liệu - có một số cờ trình biên dịch hoặc bộ xử lý sau ildasm không?
- Có các thuộc tính kiểm soát loại được xuất sang 'cấu hình' khác nhau không?
- Độ phân giải lắp ráp tham chiếu trong thời gian chạy như thế nào - nếu tôi có bộ tham chiếu trong thư mục ứng dụng thay vì cụm từ 'thực', và không phải trong GAC, sẽ khảo sát tiếp tục và sự kiện AssemblyResolve của tôi có thể cung cấp lắp ráp thực tế tại thời gian chạy?
Bất kỳ ý tưởng hay gợi ý nào để tôi có thể tìm hiểu thêm về điều này sẽ được đánh giá cao.
Cập nhật: Nhìn xung quanh một chút, tôi thấy hội đồng tham chiếu .NET 3.0 'dường như có một số mã và Reference Assembly attribute chỉ được thêm trong .NET 4.0. Vì vậy, hành vi có thể đã thay đổi một chút với thời gian chạy mới.
Tại sao? Đối với thư viện bổ trợ Excel-DNA (http://exceldna.codeplex.com) của tôi, tôi tạo thêm một tệp .xll bổ trợ bằng cách đóng gói các assembly được tham chiếu vào tệp .xll dưới dạng tài nguyên. Các assembly được đóng gói bao gồm mã bổ trợ của người dùng, cũng như thư viện quản lý Excel-DNA (có thể được tham chiếu bởi assembly của người dùng).
Nghe có vẻ khá phức tạp, nhưng hoạt động tuyệt vời phần lớn thời gian - bổ trợ là một tệp nhỏ duy nhất, do đó không cài đặt các sự cố phân phối. Tôi gặp phải các vấn đề (không phải bất ngờ) vì các phiên bản khác nhau - nếu có một phiên bản cũ của thư viện được quản lý Excel-DNA dưới dạng tệp, thời gian chạy sẽ tải thay vì gói được đóng gói (tôi không bao giờ có cơ hội can thiệp vào tải).
Tôi hy vọng sẽ thực hiện một phiên bản tham chiếu cho phần quản lý Excel-DNA của mình mà người dùng có thể trỏ đến khi biên dịch bổ trợ của họ. Nhưng nếu họ nhầm lẫn có một phiên bản của hội đồng này tại thời gian chạy, thời gian chạy sẽ không tải nó, và cho tôi một cơ hội để tải lắp ráp thực sự từ các nguồn lực.
Tại sao bạn muốn làm điều đó? – svick