[英]Error loading dll for ODP.NET in Windows 10 C#
我在跑步:
我想编写一个简单的C#应用程序以从Oracle数据库读取数据,并想使用ODP.NET。 但是,在运行程序时,我会立即遇到运行时错误。
我开始了一个新的Windows Forms项目。
我在目录c:\\ app \\ Dave \\ product \\ 11.2.0 \\ dbhome_1 \\ ODP.NET \\ bin \\ 2.x \\中链接了服务Oracle.DataAccess.dll
我的代码是:
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace testapp_2
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
代码:
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
namespace testapp_2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
OracleConnection conn = new OracleConnection();
}
}
}
错误是:
无法加载文件或程序集'Oracle.DataAccess,Version = 2.112.1.0,Culture = neutral,PublicKeyToken = 89b483f429c47342'或其依赖项之一。 试图加载格式错误的程序。
在调试模式下运行时,程序在以下行停止:
Application.Run(new Form1());
过去,我已经在Windows XP下成功地在Visual Stdio Express 2008和Oracle 10g中成功使用了此功能,并认为这将像以前一样非常简单,但显然不是。
其他人是否遇到过此错误,并希望找到解决方法? 对于任何帮助或信息,我将不胜感激。
非常感谢你!
戴夫。
在某些情况下,.net DLL在64位系统下不能同时面向x86和x64平台(例如Microsoft Expression Encoder)。 启动调试时可能会发生此错误(不确定ODP.NET是否相同)。 解决方案是将项目中的构建设置更改为x86而不是Any CPU。
感谢大家发表这么多有用的评论。
我尝试按照建议将目标CPU更改为x86而不是Any CPU(我也尝试过x64),但没有区别。
但是考虑到该主题后,我想到了这可能是旧的ODP.NET dll,并且与.NET的当前/最新版本不兼容。
因此(在“属性”和“应用程序”选项卡中,我将目标.NET框架更改为.NET 3.5,并且可以解决我的问题!
现在,我可以从C#向数据库读写数据了! 我很高兴并为它现在正在工作感到欣慰。
再次感谢大家为我提供的帮助,以解决这个问题! :-)
-D。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.