Не удаётся обнаружить dll - C#
Формулировка задачи:
Здравствуйте.
В одной папке с приложением лежит нужная ему DLL. Подключается он с помощью DLLImport:
Всё работает, но когда отдаю приложение, условно назовём "Клиенту", то приложение почему-то эту библиотеку не видит. В лог пишет "Не удалось загрузить файл или сборку "file:///C:\TEST\CMHK3.dll" либо одну из их зависимостей. Ожидалось, что модуль содержит манифест сборки."
Пошёл гуглить про манифесты. Оказалось, что это чего-то страшное, не понятное и если честно, я вообще не понял как это может быть связано с тем, что библиотека не обнаруживается
Если манифесты - это не то, то подскажите куда ещё смотреть в такой ситуации?
Если как раз в манифесты мне и надо, то подскажите какую-нибудь хорошую статью простым языком, а то я находил только что-то страшное.
P.S. Банально наличие файла dll в папке проверялось, приложение запускали от имени администратора (win10, если это важно).
[DllImport(@"CMHK3.dll", CallingConvention=CallingConvention.StdCall)]
Решение задачи: «Не удаётся обнаружить dll»
textual
Листинг программы
foreach ( FileInfo LibInfo in new DirectoryInfo ( Directory.GetCurrentDirectory ( ) ).GetFiles ( "*.dll" ) ) { try { int UID = 0; foreach ( Type CurrentType in Assembly.LoadFrom ( LibInfo.Name ).GetTypes ( ) ) { Type [ ] Interfaces = CurrentType.FindInterfaces ( FilterForSearchInterfaces, "IDriverL" ); if ( Interfaces.Length != 0 ) { Drivers.Add ( LibInfo.Name + UID.ToString ( CultureInfo.InvariantCulture ), CurrentType ); UID++; } } } catch ( Exception ex ) { WriteLog ( LibInfo.Name + ":" + "Utils. Error when searching for drivers:" + ex.Message ); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д