安装的应用程序无法加载MySQL.Data.DLL?

时间:2015-11-17 04:19:36

标签: c# mysql .net installation mysql.data

我的应用程序在我的系统上运行完美(在IDE中,并且已安装),但在任何其他系统上安装时都会完全失败。

我移动了源代码的删节版本,看看我是否能弄清楚问题是什么,以及我的无限愤怒,我发现当程序试图引用另一个库中包含的类时发生错误利用了MySQL.Data.DLL文件...

[插入无尽的诅咒,发誓,以及其他R级语言]。

为什么呢?为什么? 为什么?! 为什么?!?! 严重 - 地狱是什么?!

1 个答案:

答案 0 :(得分:2)

当您在应用程序中使用MySql并在客户端计算机上安装时,它将在客户端计算机中搜索MySql.Data.dll并转到路径

C:\Program Files (x86)\MySQL\MySQL Connector Net X.X.X\Assemblies\(假设您已在C盘中安装了MySql连接器)

浏览Assemblies文件夹,您会看到此MySql.Data.dll检查此文件的版本并同样检查您的MySql.Data.dll它们必须是相同的。

  

普通外行用户不会安装MySQL连接器。当这个程序发布用于一般发行和John Q时,我该怎么做。用户无法运行它,因为他们没有安装这个模糊的东西?

您的应用程序必须打包它的所有必备条件,因此在客户端安装它时,还应该使用您的软件安装必备软件。 假设我使用MySql connector 6.9.6.0开发了一个应用程序。

做以下事情

  1. 使用您的软件构建包装MySql Connector
  2. 在App.Config文件中指定MySql Connector版本。

     <system.data>
        <DbProviderFactories>
            <clear/>
            <remove invariant="MySql.Data.MySqlClient"/>
            <add name="MySql.Data.MySqlClient" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data,Version=6.9.6.0, Culture=neutral,PublicKeyToken=c5687fc88969c44d"/>
        </DbProviderFactories>
    </system.data>
    
  3. 现在,客户端计算机将专门在app.config中搜索上述版本。

    顺便说一下这两点是可选的, 如果你不做这些,那么你必须像现在一样照顾好每一件事。