Ошибка драйвера Sybase в 64-разрядной версии Windows server

#c# #.net #sybase

#c# #.net #sybase

Вопрос:

У меня есть консольное приложение, которое отлично работает на 32-разрядной машине. Но у меня возникла проблема с запуском исполняемого файла в 64-разрядной версии Windows Server. Сообщение об ошибке, которое я получаю, является:

Инициализатор типа для «Sybase.Data.AseClient1.AseConnection» выдал исключение. Система.Исключение BadImageFormatException. Была предпринята попытка загрузить программу с неправильным форматом. в Sybase.Data.AseClient.Неуправляемый.Asegetdriverserversion в Sybase.Data.Aseclient1.AseConnection.Проверьте версию().

Кто-нибудь видел эту ошибку?

Обновление: После компиляции в X86 я получаю:

Основное несоответствие версии sybdrvado20.dll . Ожидается основная версия ‘2’. Загружена версия 1 в Sybase.Data.AseClient1.AseConnection.Проверьте версию.

Пожалуйста, обратите внимание, что на сервере установлена последняя версия Sybase.

Ответ №1:

Еще проще, загрузите версию x64 http://www.sybase.com/detail?id=1051287amp;elq=00000000000000000000000000000000

Ответ №2:

У меня были похожие проблемы, потому что драйвер 32-разрядный. итак, попробуйте создать свое приложение для x86. Вы можете сделать это в свойствах вашего проекта.

Ответ №3:

Что касается ошибки «Основное несоответствие версии sybdrvado20.dll …», что решило для меня замену старой версии sybdrvado20.dll это было в папке bin моего приложения (расположенной на сервере) для нового, расположенного в C:SybaseDataAccessADONETdll или C:SybaseDataAccess64ADONETdll . Чтобы проверить версию библиотеки dll, щелкните правой кнопкой мыши файл, перейдите в Свойства и щелкните на вкладке Подробности.