[英]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.