Многим разработчикам рано или поздно приходится сталкиваться с задачами, которые подразумевают использование Microsoft Excel (далее по тексту просто Excel). В этих случаях можно применить утилиту tlbimp.exe, импортировать библиотеку типов, добавить ссылку на нее, и вам станет доступно пространство имен Excel, со всеми классами-обертками, вокруг "внутренностей" Excel. Или еще проще, можно просто добавить ссылку на COM-объекты Excel в Visual Studio, и она сделает все сама. Все это хорошо, конечно. И просто. Но иногда возникают ситуации, когда описанное вкратце "раннее связывание" неприемлемо. Например, ваше приложение будет выложено на сайт, следовательно, нужно уменьшить его размер. Раннее связывание порождает две сопутствующие сборки – Microsoft.Office.Interop.Excel.dll и Microsoft.Vbe.Interop.dll, которые содержат классы-обертки. Суммарный размер этих сборок превышает мегабайт, и, несмотря на то, что сборки .NET хорошо сжимаются архиваторами, «тащить» за собой все классы-обертки Excel ради использования двух-трех методов явно нецелесообразно.
И тогда на помощь приходит т.н. "позднее связывание", когда не нужно никаких сопутствующих сборок.
Описывать позднее связывание в этой статье нет смысла, в литературе, как и в Интернете, достаточно материала по этой теме. Все примеры выполнены на C#, но, надеюсь, программисты, использующие в своей работе другие .NET-языки, смогут разобраться в коде без особого труда.