С риском звучать бесполезно, я бы рекомендовал против этого в .Net 2.0 или 3.5. Как сказал Брайан, вы пытаетесь реализовать расширение оболочки. Они реализованы в виде библиотек, которые загружает оболочка Vista.
Хотя в Интернете есть несколько учебных пособий, в которых даются инструкции по их реализации в .Net 2.0, или в некоторых из них упоминается, насколько это плохая идея. Если вы заставляете оболочку Vista загружать расширение оболочки .Net, она вынуждена загружать всю .Net CLR, которая требуется вашему расширению оболочки. Еще хуже то, что вы можете загрузить только одну версию полной .Net CLR в одном процессе. Поэтому, если у вас есть расширение оболочки, для которого требуется .Net 1.0 CLR, а Vista уже загрузила его, она не сможет загрузить 2.0 CLR, которая требуется для вашего расширения оболочки.
Также есть некоторые статьи Переполнения стека , которые уже обсуждают это.
Некоторая информация о реализации расширения оболочки в неуправляемом C ++ (KBCafe PDF, не удалось найти простую ссылку html)