首页 > 学院 > 开发设计 > 正文

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

2019-11-17 01:32:52
字体:
来源:转载
供稿:网友

关于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,解决了,多谢熬夜后如头像的帮助。我也记录此问题来帮助以后遇到这个问题的朋友。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表