·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 关于Linux和Windows下部署mysql.data.dll的注册问题

关于Linux和Windows下部署mysql.data.dll的注册问题

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

关于linux和Windows下部署MySQL.data.dll的注册问题

mysql ado.net connector下载地址:

http://dev.mysql.com/downloads/connector/net/

选择版本:

Generally Available Releases(1)是发布版(bug什么的较少的版本吧),而Development Releases(2)是开发版

我们采用1版本

Windows (x86, 32-bit), MSI Installer

该版本是window下的安装版,如果你安装了这个版本的话,在本机调试的时候可以不用再次注册MySql.Data.MySqlClient,vs会找到dbPRovider为此的dll,

如果重复注册会报错

创建 system.data 的配置节处理程序时出错: 列“InvariantName”被约束为是唯一的。值“MySql.Data.MySqlClient”已存在。

如下图

.Net & Mono (Architecture Independent), Zip Archive

如果是这个版本的话,那么你需要手动注册下dll,否则调试的时候或者部署到Linux服务器上的时候MySql.Data.dll是无法被加载的,所以要手工注册下代码如下

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

对于

type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,Version=6.9.0.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"

这段根据自己的版本改变:C:\Windows\Assembly

注意了:这样就会在windows下调试的时候报重复注册的错了。

我纠结了:在群友熬夜后如头像的帮助下解决了

在注册前先移除,上面web.config的配置改变为

    <system.data>        <DbProviderFactories>            <remove invariant="MySql.Data.MySqlClient"></remove>//先移除,接下来注册            <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient"                description=".Net Framework Data Provider for MySQL"                type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data,Version=6.9.0.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>            </DbProviderFactories>    </system.data>

ok,解决了,多谢熬夜后如头像的帮助。我也记录此问题来帮助以后遇到这个问题的朋友。