[AutoItX3Lib] Помогите решить ошибку "Не удалось получить фабрику класса COM для компонента с CLSID ..."

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
533
Благодарностей
1 111
Баллы
93
Полное сообщение об ошибке:
Error Message: Не удалось получить фабрику класса COM для компонента с CLSID {1A671297-FA74-4422-80FA-6C5D8CE4DE04} из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Пред история:
Написал проект для заказчика в VS22. У меня все работает, а у заказчика когда программа доходит до метода связанного с AutoItX3 сразу падает с ошибкой:
Метод ввода текста:
public bool TextKeyboardEmulation(string text, int nMode)
{
    lock (Locks.keyboard)
    {
        AutoItX3 autoItX3Class = new AutoItX3();
        autoItX3Class.Send(text, nMode);
        return true;
    }
}
Из-за ошибки выше, привел скриншот кода.
103243

Важно. Я указывал на библиотеку в папке у себя на ПК. То есть загружал данную библиотеку не через NuGet пакет, а указывал на прямую.
Свойства к этой библиотеке выбраны такие:
1676213501172.png

Потом идет сборка в release и вызывается через кубик "Использовать Dll"
103240

После всех манипуляций в релизе библиотека лежит. Но ошибка сохраняется, только у заказчика. У меня все отлично работает.
103244

Помогите, пожалуйста. Что нужно сделать со ссылкой на библиотеку или может не в этом проблема.
 
Последнее редактирование:

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
533
Благодарностей
1 111
Баллы
93
Странно, после публикации кода, сниппет изменился на:
103242

Добавлю в вопрос скриншот.
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 486
Благодарностей
3 356
Баллы
113
Выносите логику в отдельный exe, так и быстрее будет обойти проблемы. :bn:
Параметры можно передавать через аргументы.
загружал данную библиотеку не через NuGet пакет, а указывал на прямую.
Это плохой способ, нужно так: https://zennolab.com/discussion/threads/ne-udaetsja-dobavit-v-proekt-appium-net-dll.99742/post-665550.
 
Последнее редактирование:

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
533
Благодарностей
1 111
Баллы
93
В NuGet просто нет данный библиотеки. Поэтому пришлось напрямую. Остальные я, конечно, скачивал через NuGet.

Выносите логику в отдельный exe, так и быстрее будет обойти проблемы. :bn:
Параметры можно передавать через аргументы.
Хм? То есть только для одного метода сделать exe? Просто реализация большая, плюс заказчику очень нужно взаимодействовать через переменные ZM.
 
  • Спасибо
Реакции: avlba

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 486
Благодарностей
3 356
Баллы
113
В NuGet просто нет данный библиотеки. Поэтому пришлось напрямую. Остальные я, конечно, скачивал через NuGet.
Довольно странное dll, так как оно обычно подразумевает зависимости.
Хм? То есть только для одного метода сделать exe?
Для того кода, что требует AutoItX3Lib или что там приводит к ошибке.
Просто реализация большая, плюс заказчику очень нужно взаимодействовать через переменные ZM.
Не очень понятно, в чем тут потеря, если exe вы будете запускать потоком шаблона (даже если в PM).
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)