#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, щелкните правой кнопкой мыши файл, перейдите в Свойства и щелкните на вкладке Подробности.