Нужно ли регистрировать COM DLL, чтобы иметь возможность ссылаться на него в проекте.NET?

Я пытаюсь ссылаться на COM DLL в Visual Studio, используя вкладку Обзор и выбрав DLL. Я заметил, что если DLL зарегистрирована в системе с помощью regsvr32, я могу сослаться на нее, но если она не зарегистрирована, я получаю сообщение об ошибке при выборе файла dll "Невозможно добавить ссылку на файл file.DLL. Пожалуйста, убедитесь, что файл доступен, и это допустимая сборка или компонент COM."
Мы хотели бы, чтобы DLL не регистрировалась, чтобы у нас было меньше конфигурации, необходимой на других машинах разработки и в средах разработки.
Это слишком много, чтобы спросить?
Спасибо!

4 ответа

Решение

Вам необходимо зарегистрировать DLL. Вы можете установить регистрацию в своем проекте установки или создать командный файл для всех этих типов процессов. Примечание: не забудьте отменить регистрацию DLL при удалении.

Вы могли бы использовать регистрацию Free Com

Вам нужно зарегистрировать COM-сервер, точка. Вы можете предпринять некоторые меры для автоматизации процесса и отмены регистрации COM-сервера, когда он не нужен.

То же касается и ежедневных сборок. Если вы строите COM-сервер и клиент на основе.NET во время сборки, вы должны зарегистрировать сервер до сборки клиента. И вам лучше отменить регистрацию, как только клиент будет собран. Добавление этих шагов в последовательность сборки не является проблемой.

Вам нужно будет зарегистрировать dll, потому что иначе он не сможет найти библиотеку типов.
Добавление dll впоследствии в качестве ссылки на ваш проект создаст сборку interop.XXXXmethod.dll.

Другие вопросы по тегам