簡體   English   中英

無法加載文件或程序集 'MySql.Data,版本 = 6.2.2.0

[英]Could not load file or assembly 'MySql.Data, Version=6.2.2.0

我正在使用 c# 和數據庫 MySQL 開發桌面應用程序。 當我在我的機器上安裝它的安裝程序時它工作正常但是當我將它安裝在其他機器上時它在嘗試訪問數據庫時給出以下異常。 我正在使用MySQL.Data.dll與 MySQL 進行通信。

無法加載文件或程序集“MySql.Data, Version=6.2.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或其依賴項之一。 系統找不到指定的文件。

MySql.Data.dll文件存在於 Program files 文件夾中的 Project 文件夾中

實際上,當我從 Program 文件中的文件夾運行它時,它運行良好,沒有錯誤,但是當我嘗試從“開始”菜單中的快捷方式運行它時,它會出現該錯誤。

聽起來我回答這個帖子晚了 2 年,但它可能對那些仍然面臨這個問題的人有幫助,所以這是我在 2012 年 4 月 1 日美國東部時間下午 5 點的發現:

我的一個 Web 應用程序遇到了同樣的問題。 我發現當你這樣做時會出現上述問題:

  • MySql.Data.dll復制並粘貼到文件夾中的某處。
  • 您在 GAC 中擁有任何版本的MySql.Data.dll的副本

盡管應用程序在您的開發機器上運行良好,因為它可以看到文件,但是當您將其部署在其他機器上時,它實際上會帶來運行時錯誤。

就我而言,VS2008 總是向我指出與您提到的相同的錯誤。 然后我這樣做了:

  • 刪除了dll的本地副本引用
  • 引用了在 GAC 中找到的 DLL
  • 並通過右鍵單擊->屬性將 DLL 的“Copy Local”屬性設置為“True”。

編輯:

有人問“GAC 在哪里?”:
http://msdn.microsoft.com/en-us/library/yf1d93sz(v=vs.110).aspx

  1. 開始菜單中的快捷方式是否正確設置了工作目錄? (我懷疑這是最有可能的答案)

  2. GAC(全局程序集緩存)中是否安裝了不同/不正確的 MySql.Data.dll 版本? 我以前見過這給出了類似的錯誤消息。

MySQL.data.dll 是否與 .exe 文件位於同一目錄中?

如果是這樣,那么 MySQL.data.dll 是否具有 .exe 文件正在尋找的正確版本/公鑰?

當這件事發生在我身上時,通常是以下兩種情況之一:

確保出現錯誤的機器上存在 MySql.Data。 (令人難以置信的是,文件丟失的頻率有多高:-))

如果 MySql.Data 是混合模式(本機和托管代碼)32 位 DLL。 並且您的可執行文件指定“任何 CPU”。 在具有 64 位 .NET 的 64 位機器上,這將失敗並顯示錯誤消息。 一種解決方案是指定“x86”作為可執行文件的目標。

湯米的理由很充分:

與我的開發機器上實際安裝的相比,我的項目引用了舊版本的 MySql.Data.dll。 這將導致相同的錯誤。

檢查您的 .config 文件:

並在添加新引用時將該 verisonNr 與文件的 versionNr 進行比較。

解決方法:

1)從您的配置文件中刪除該行並重新添加引用

2) 或卸載 MySql .net 連接器並安裝您的項目所引用的版本。

我也有這個問題,對我來說它是在項目設置中重新創建連接字符串。 它們是為以前版本的 MySQL 連接器配置的。

我在 Web 應用程序 (C#) 中遇到了同樣的問題。 我設法通過更改web.config文件來解決它,它引用了 6.2.2.0 版,而我的 dll 是 8.0.25.0 版。

<system.data>
  <DbProviderFactories>
    <remove invariant="MySql.Data.MySqlClient" />
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" 
      description=".Net Framework Data Provider for MySQL" 
      type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, 
      Version=8.0.25.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
  </DbProviderFactories>
</system.data>

確保您放在項目文件夾中的 MySql.Data DLL 是正確的版本(在本例中為 6.2.2.0)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM