COM не так популярен в .NET, потому что Global Assembly Cache (GAC) и внутренние манифесты, встроенные в сборки .net, решают ту же задачу, что и регистрация COM.
Вот полезная статья , которая может помочь объяснить это, вот фрагмент из нее
.NET предоставляет совершенно новый подход к созданию и развертыванию компонентов, которые также известны каксборок.При использовании COM разработчик должен зарегистрировать компонент на сервере, то есть его информация должна была быть обновлена в системном реестре.Цель состоит в том, чтобы хранить информацию о компонентах в центральном месте, чтобы COM + мог найти соответствующий компонент.
В сборках .NET файл сборки содержит все метаданные, необходимые в специальных разделах, называемых манифестами.[...] Поскольку информация о компоненте хранится в манифестах, разработчику не нужно регистрировать компонент на сервере, и несколько версий одного и того же компонента могут безопасно сосуществовать вместе на одном компьютере.
В статье на самом деле не упоминается GAC, но любое взаимодействие между поставщиками или двоичная обратная совместимость, которую вы бы сделали с COM, может быть обработано в .NET производителем, зарегистрировавшим сборку в GAC и вашей программе, использующей это.сборка.
Единственный случай, когда .NET использует COM, - это взаимодействие с неуправляемым кодом, который изначально был написан для COM.
Однако многие поставщики сегодня даже не используют GAC, что онидля этого нужно отправить сборку, которую программист может добавить в проект и развернуть с помощью exe, обычно используя NuGet для ее распространения.