Các ứng dụng và thư viện được biên dịch thành mã bytecode đa nền tảng được tiêu chuẩn hóa ở định dạng PE/COFF. Bản phân phối ở dạng nhị phân là một tính năng được thiết cho hiệu suất. Nó cho phép các ứng dụng mở rộng quy mô cho số lượng dự án ngày càng lớn hơn. Mỗi thư viện bao gồm một tập dữ liệu gồm danh sách các kiểu được import và export, còn được gọi là metadata, đóng vai trò quan trọng cho cả hoạt động phát triển và chạy ứng dụng.
Các bản dữ liệu nhị phân được biên dịch bao gồm hai phần chính:
- Mã bytecode — định dạng ngắn gọn và thông thường cho phép bỏ qua nhu cầu phân tích cú pháp từ mã nguồn dạng văn bản sau khi biên dịch bởi một trình biên dịch ngôn ngữ cấp cao (như C#).
- Metadata — mô tả các kiểu được import và export, bao gồm vị trí của mã bytecode cho một phương thức nhất định.
Đối với việc phát triển, các công cụ có thể đọc metadata một cách hiệu quả để xác định tập hợp các kiểu được cung cấp bởi một thư viện nhất định và các thao tác khác, chẳng hạn như loại nào trong số đó implement một interface nhất định. Quá trình này làm cho quá trình biên dịch diễn ra nhanh chóng và cho phép các IDE cũng như các công cụ khác trình bày chính xác danh sách các loại và thành phần bên trong ở một ngữ cảnh nhất định.
Đối với thời gian chạy, metadata cho phép các thư viện được tải một cách lazy (1) và các phần thân của phương thức thậm chí còn hơn thế nữa. Reflection (đã thảo luận trước đó) là API thời gian chạy cho metadata và IL. Còn có các API khác phù hợp hơn cho các công cụ.
Định dạng IL vẫn tương thích ngược theo thời gian. Phiên bản .NET mới nhất vẫn có thể tải và thực thi các tệp nhị phân được tạo bằng trình biên dịch .NET Framework 1.0.
Thư viện dùng chung thường được phân phối qua các gói NuGet. Theo mặc định, các gói NuGet, với một tệp nhị phân duy nhất, có thể hoạt động trên bất kỳ hệ điều hành và kiến trúc nào, nhưng cũng có thể được chuyên biệt hóa để cung cấp hành vi cụ thể trong các môi trường cụ thể.
(1) Lazy loading: Chỉ đến việc tải một thư viện chi khi ta thực sự dùng đến nó (hoặc có thể sớm hơn nhưng không cần phải vào thời gian chương trình được tải lên).