Как мне использовать незарегистрированную dll из C#?

У меня есть пользовательские DLL (не зарегистрированы), что мне нужно получить доступ через C#. Как мне сделать это без регистрации DLL?

Редактировать: это C++ DLL.

2 ответа

Решение

См. Регистрация без взаимодействия COM:

COM-взаимодействие без регистрации активирует компонент без использования реестра Windows для хранения информации о сборке. Вместо регистрации компонента на компьютере во время развертывания вы создаете файлы манифеста в стиле Win32 во время разработки, которые содержат информацию о привязке и активации. Эти файлы манифеста, а не ключи реестра, управляют активацией объекта.

Использование активации без сборок для ваших сборок вместо регистрации их во время развертывания дает два преимущества:

  • Вы можете контролировать, какая версия DLL активируется, если на компьютере установлено более одной версии.
  • Конечные пользователи могут использовать XCOPY или FTP для копирования вашего приложения в соответствующий каталог на своем компьютере. Затем приложение можно запустить из этого каталога.

Я предполагаю, что вы хотите использовать функции, экспортированные из этой DLL через P/Invoke? Если это так, вам нужно только скопировать DLL в ту же папку, что и ваш исполняемый файл. Затем напишите объявления C# для функций в dll C++, которые вы хотите использовать. Смотрите DllImportAttribute.

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