Пытаюсь подключиться к фискальному устройству с C#.
Для этого я использую эту документацию: http://integration.atol.ru/api-en/#connection-to-project
Итак, в основном у меня на ПК установлен драйвер устройства (fprt10.dll) и есть сборка-обертка, которая позволяет мне работать с этим драйвером из C# (Atol.Drivers10.Fptr.dll). Я импортирую эту оболочку в свой проект в качестве эталона.
У меня есть следующий конструктор в моем классе:
public MyClass()
{
IFptr fiscalPrinter = new Fptr();
// Here comes several settings to configure connection
fiscalPrinter.applySingleSettings();
fiscalPrinter.open();
fiscalPrinter.beep();
fiscalPrinter.close();
}
Чтобы протестировать решение, я использую другое приложение, которое загружает мою библиотеку классов в качестве зависимости. Когда я вызываю конструктор MyClass, я получаю исключение:
System.IO.FileNotFoundException: Driver not installed
at Atol.Drivers10.Fptr.Fptr.loadDriver(String path)
at Atol.Drivers10.Fptr.Fptr..ctor()
at MySolution.MyClass.MyClass()
...
Если я создам экземпляр Fptr с путем к драйверу
IFptr fiscalPrinter = new Fptr(@"C:\path\fptr10.dll")
Я получаю немного другое исключение, но я считаю, что проблема та же:
System.IO.FileNotFoundException: Can`t load driver library "C:\path\fptr10.dll"
at Atol.Drivers10.Fptr.Fptr.raiseNotFoundError(String path, Exception reason)
at Atol.Drivers10.Fptr.Fptr.loadDriver(String path)
at Atol.Drivers10.Fptr.Fptr..ctor(String libraryPath)
at MySolution.MyClass.MyClass()
...
Но когда я создаю консольное приложение и вставляю туда один и тот же код (как с путем, так и без), все работает: устройство пищит, исключений нет.
В чем может быть причина такого поведения и как это исправить?
Проблема может быть одной из следующих
Спасибо samiksc.
Проблема была в тестовом приложении. Драйвер и ОС, которые я использую, — x64, но тестовое приложение — x86. С драйвером x86 все работает.
Спасибо за подробный ответ. Пробовал первые два варианта и они не помогли. Драйвер определенно x64, а тестовое приложение - x86. Это может быть источником проблемы. Я буду исследовать это дальше и попробую средство просмотра привязки сборки.