Mar*_*377 3 c# mysql entity-framework visual-studio nuget
我有一个使用MariaDB和Entity Framework 6的C#ASP.NET MVC项目。
该项目在Visual Studio 2017中完成,花了我很长时间仔细检查是否以NuGet包MySql.Data 8.0.13和MySql.Data.EntityFramework的形式添加了正确的MySQL连接器的程序集引用。8.0.13(均由Oracle正式发布),因为在调试时浏览View时出现以下错误:
具有不变名称'MySql.Data.MySqlClient'的ADO.NET提供程序未在计算机或应用程序配置文件中注册。
在我放弃它并尝试安装MySQL Connector / NET 8.0之前,它一直有效。web.config除了由NuGet执行的更改外,没有对文件进行任何更改。
我检查了安装程序放置%ProgramFiles%\MySql\Connector的程序集,它们与NuGet拉出的程序集完全相同。哎呀,我什至删除了整个文件夹,它仍然有效。
是什么赋予了?NuGet软件包是否缺少应执行的某些步骤?
我怀疑Connector / NET 8.0安装程序会修改您的C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config文件,该文件将由计算机上的所有.NET应用程序共享。不幸的是,这是计算机上的本地更改,这意味着您的应用程序在部署后可能无法正常运行。
解决方案是将MySql.Data添加到您的app.config(或Web.config)文件中。我不确定NuGet软件包是否旨在自动执行此操作。
根据Oracle文档,将此信息添加到app.config:
<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.13.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
546 次 |
| 最近记录: |