2010-05-19 5 views
3

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

Редактировать: Это C++ dll.

+0

Какая это DLL? .NET-сборка, родная DLL, COM-объект? Что вы имеете в виду, зарегистрировав dll? – Simon

+0

Предполагая, что вы не имеете ссылку на текущую сборку, когда вы пишете «незарегистрированные», используйте [DllImport] (http://msdn.microsoft.com/en-us/library/aa288468.aspx). – Randolpho

ответ

4

См Registration-Free COM Interop:

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

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

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

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