问题描述
|
我有一个控制台应用程序,可以在32位计算机上完美运行。但是我在64位Windows服务器上运行可执行文件时遇到问题。我收到的错误消息是:
\“ Sybase.Data.AseClient1.AseConnection \”的类型初始化器引发了异常。 System.BadImageFormatException。试图加载格式不正确的程序。在Sybase.Data.Aseclient1.AseConnection.CheckVersion()处的Sybase.Data.AseClient.Unmanaged.AseGetDriverVersion处。
有没有人看到这个错误?
更新:在X86中编译后,我得到:
主版本不匹配sybdrvado20.dll。预期主要版本为'2 \'。在Sybase.Data.AseClient1.AseConnection.CheckVerison上加载了版本1。
请注意,该服务器具有最新的Sybase版本。
解决方法
我有类似的问题,因为驱动程序是32位的。因此,尝试为x86构建应用程序。您可以在项目属性中执行此操作。
,甚至更容易,下载x64版本http://www.sybase.com/detail?id=1051287&elq=00000000000000000000000000000000
,关于错误“主要版本不匹配sybdrvado20.dll ...”,对我来说,解决的方法是将应用程序(位于服务器中)bin文件夹中的旧版本sybdrvado20.dll替换为新版本,位于C:\\ Sybase \\ DataAccess \\ ADONET \\ dll或C:\\ Sybase \\ DataAccess64 \\ ADONET \\ dll中。
要检查dll的版本,请右键单击该文件,转到“属性”,然后单击“详细信息”选项卡。