当前位置:   article > 正文

linux 64 dll,.net - 如何包含Linux的64位dotnet System.Data.Odbc dll - 堆栈内存溢出

system.data.odbc的dll

我已经在Linux上构建了一个dotnet 4.6应用程序,该应用程序使用ODBC连接到DB2。 我遇到了一个看起来像这样的错误:

ODBC ERROR : Arithmetic operation resulted in an overflow.

ODBC ERROR STACK: at System.Data.Odbc.OdbcDataReader.FirstResult()

at System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior ..

我认为这是因为我有一个32位DLL试图使用64位驱动程序/ odbc-manager。 我已经成功安装了unixODBC和DB2驱动程序,并确认它们都是64位的。

file /usr/lib/x86_64-linux-gnu/libodbc.so.2.0.0

/usr/lib/x86_64-linux-gnu/libodbc.so.2.0.0: ELF 64-bit LSB shared object, x86-64, version 1

(SYSV), dynamically linked, BuildID[sha1]=389cfd357f04f6e9265c8015c50935b04c09c468,

stripped

file /odbc/odbc_cli/clidriver/lib/libdb2.so.1

/odbc/odbc_cli/clidriver/lib/libdb2.so.1: ELF 64-bit LSB shared object, x86-64, version 1

(SYSV), dynamically linked, not stripped

我已经将我的项目构建为linux 64,如下所示:

dotnet publish ${PROJFILE} /p:Platform=x64 -c Release -r linux-x64 -o /app/publish

而且我可以看到PE32 +的主DLL确实是64位的(只是PE32仅意味着32位)

file la3-core-service-proc.dll

la3-core-service-proc.dll: PE32+ executable (console) x86-64 Mono/.Net assembly, for MS

Windows

大多数所有的dotnet程序集也是PE32 +,但是System.Data.Odbc.dll不是。 它是32位的。

file System.Data.Odbc.dll

System.Data.Odbc.dll: PE32 executable (DLL) (console) Intel 80386 Mono/.Net assembly, for

MS Windows

所以我的问题是..如何添加64位(PE32 +)System.Data.Odbc.dll,或者在哪里可以找到它?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/705985
推荐阅读
相关标签
  

闽ICP备14008679号