2010-01-13 30 views
5

我得到這樣的錯誤在應用程序中,鏈接到非特定版本的程序集?

無法加載文件或程序集 「MySql.Data,版本= 6.2.2.0, 文化=中性公鑰= c5687fc889699c44d」 或一個其依賴性。位於 程序集的清單defenition 與程序集引用不匹配。

這是預期的,因爲此安裝恰巧安裝了先前版本的.dll。

我可以告訴(在VS2008中)鏈接到這個MySQL.data.dll,而不關心它的版本嗎? 項目中的MYSQL.data.dll引用具有名爲「特定版本」的屬性,但將其設置爲false不會產生任何差異。

如果此.dll與所需的二進制文件不兼容,我非常瞭解其含義。

回答

5

SpecificVersion無法解決您的問題,只能在編譯時工作。你應該重建你的程序,以獲得最少的驚喜。或者,您可以在.exe.config文件中使用<bindingRedirect> element

+0

我意識到可能發生的意外。這個問題更一般。我即將構建自己的一些程序集,並且希望能夠單獨升級這些.dll文件而無需重建引用它們的.exe – Anonym 2010-01-13 10:51:21

+3

如果它只是一個錯誤修復程序,不會更改[AssemblyVersion]不改變類的公共接口。只更新[AssemblyFileVersion]。例如,.NET 3.5程序集仍然是2.0.0.0。 MySql改變版本這一事實強烈暗示重新編譯是必需的。 – 2010-01-13 11:36:20

+0

AssemblyVersion爲+1,AssemblyFileVersion爲+1 – 2011-05-09 16:55:29

-2

是的,你可以。選擇引用的dll,並在屬性窗口中將'特定版本'設置爲False。

+0

正如我所提到的,我已經這樣做了,無濟於事。 – Anonym 2010-01-13 10:40:22

+0

這對RunTime沒有影響 - 僅在編譯時 – Rodney 2012-01-17 23:16:24

相關問題