Когда вы ссылаетесь на COM DLL, Visual Studio автоматически создает сборку взаимодействия для него. Я считаю, что ручное управление этим процессом - отличный способ развязать сборки COM и .NET.
- Создайте свою собственную сборку взаимодействия для COM DLL, используя
tlbimp.exe
. См. MSDN для параметров командной строки.
- Ссылка на сборку взаимодействия в проекте .NET вместо COM DLL.
После того, как вы это сделаете, вам больше не нужно регистрировать COM DLL на компьютере при создании решения .NET, требуется только ваша сборка взаимодействия.
Сборка взаимодействия может постоянно находиться в папке без изменений до тех пор, пока (а) COM DLL не нарушит двоичную совместимость или (б) не произойдет изменение интерфейса COM, которое фактически использует код .NET.
Если у вас есть разные версии COM DLL, которые все двоично совместимы, то скомпилируйте сборку взаимодействия с самой ранней версией, содержащей интерфейсы, необходимые для кода .NET. Тогда вам не придется обновлять сборку взаимодействия для разных версий.
Кроме того, вам не нужно включать COM DLL в ваш установщик, если вы в состоянии предположить, что COM DLL уже будет установлена на целевой машине.