У меня есть пользовательская dll (незарегистрированная), с которой мне нужно получить доступ через C#. Как мне это сделать без регистрации DLL?Как использовать незарегистрированную dll из C#?
Редактировать: Это C++ dll.
У меня есть пользовательская dll (незарегистрированная), с которой мне нужно получить доступ через C#. Как мне это сделать без регистрации DLL?Как использовать незарегистрированную dll из C#?
Редактировать: Это C++ dll.
См Registration-Free COM Interop:
регистрация свободного COM Interop активирует компонент без использования реестра для хранения сборки информации. Вместо того, чтобы регистрировать компонент на компьютере во время развертывания , вы создаете файлы манифеста Win32 в стиле во время разработки, которые содержат информацию о привязке и активации. Эти файлы манифеста, , а не ключи реестра, направляют активацию объекта.
Использования регистрации свободной активации для сборок вместо регистрации их во время развертывания предлагает два преимущества:
- Вы можете контролировать, какую версию DLL активируются при установке более одна версии на компьютер.
- Конечные пользователи могут использовать XCOPY или FTP для копирования вашего приложения в соответствующий каталог на своем компьютере . Затем приложение может быть выполнено в .
Я предполагаю, что вы хотите использовать функции, экспортируемые из этой библиотеки DLL с помощью P/Invoke? Если это так, вам нужно только скопировать dll в ту же папку, что и ваш exe-файл. Затем напишите объявления C# для функций в dll C++, которые вы хотите использовать. См. DllImportAttribute.
Какая это DLL? .NET-сборка, родная DLL, COM-объект? Что вы имеете в виду, зарегистрировав dll? – Simon
Предполагая, что вы не имеете ссылку на текущую сборку, когда вы пишете «незарегистрированные», используйте [DllImport] (http://msdn.microsoft.com/en-us/library/aa288468.aspx). – Randolpho