У нас есть коллекция функций C # (в DLL), которые должны быть переданы через COM, чтобы к ним легко получить доступ из Visual Studio через функцию «Добавить ссылку». Я настроил реестр так, чтобы он действительно отображался в разделе «Расширения» при нажатии кнопки «Добавить ссылку» в проекте Visual Studio C #.
Однако C # COM DLL вызывает C ++ DLL. Когда я создаю тестовый проект C # и затем нажимаю «Добавить ссылку», чтобы добавить мою C # COM DLL, он успешно добавляет класс, но не включает C ++ DLL, что приводит к сбою в процессе сборки.
Ручное добавление C ++ DLL в вывод заставляет его функционировать должным образом, но было бы хорошо иметь возможность нажать «Добавить ссылку», и все необходимые файлы были встроены в вывод.
Я следовал инструкциям здесь , создавая правильную запись в реестре в папке, где и находятся DLL C ++ и C # DLL, но, похоже, это не так включите его, просто нажав «Добавить ссылку».
Как мне добиться желаемых результатов? Обратите внимание, что C ++ DLL не использует COM-интерфейс, это просто стандартная DLL, которая экспортирует функции, а C # COM DLL использует DllImport для доступа к ним.