Oracle11g MonoDevelop错误-System.DllNotFoundException:libclntsh.so
我使用VisualStudio2008和OracleClient(OCI)库创建了一个C#console项目,以连接到Oracle 11g数据库。此代码在Windows中工作。我将整个项目复制到Linux中,并使用MonoDevelop 4.2.3打开解决方案。但是在运行项目时,数据库打开调用抛出一个异常Oracle11g MonoDevelop错误-System.DllNotFoundException:libclntsh.so,oracle11g,mono,monodevelop,redhat,oracleclient,Oracle11g,Mono,Monodevelop,Redhat,Oracleclient,我使用VisualStudio2008和OracleClient(OCI)库创建了一个C#console项目,以连接到Oracle 11g数据库。此代码在Windows中工作。我将整个项目复制到Linux中,并使用MonoDevelop 4.2.3打开解决方案。但是在运行项目时,数据库打开调用抛出一个异常 string connectionString = "Data Source=Test; User ID=UID; Password=PWD" OracleConnection
string connectionString = "Data Source=Test; User ID=UID; Password=PWD"
OracleConnection conn = new OracleConnection()
conn.ConnectionString = connectionString;
conn.Open();
例外情况:
System.DllNotFoundException:libclntsh.so at(包装器
管理到本地)
System.Data.OracleClient.Oci.OciCalls/OciNativeCalls:OCIEnvCreate
libclntsh.so文件位于位置/home/dbuser/instantclient_12_1下
我通过在/home/dbuser/.bashrc文件中添加以下内容来设置环境变量,并重新启动了系统
出口
LD_LIBRARY_PATH=/home/dbuser/instantclient_12_1:$LD_LIBRARY_PATH
但我还是犯了同样的错误。我找不到在MonoDevelop中包含库的任何选项
感谢看起来LD_LIBRARY_PATH环境变量未正确设置或未应用 请尝试使用以下命令创建其他链接器配置文件:
echo /home/dbuser/instantclient_12_1 > /etc/ld.so.conf.d/instantclient.conf
然后使用以下命令作为根更新链接器缓存:
ldconfig
重新启动MonoDevelop并重试。我已通过执行以下操作解决了此问题 echo$ORACLE_HOME/lib>/etc/ld.so.conf.d/dbconf.conf 将$ORACLE\u HOME、$ORACLE\u INCLUDE\u PATH和$ORACLE\u LIB\u PATH设置为 /etc/profile.d
由于某些原因,MonoDevelop IDE没有选择libclntsh库。因此,如果我使用OCI客户端库,我从文件.bashrc中删除了环境变量,并尝试了您的代码,仍然会收到相同的错误。