这似乎是一个常见的错误,但我见过的修复工作都没有奏效。我的PC上有两个VS2015 EF6“首先来自数据库的代码”解决方案,它们具有相同的型号和app.config文件。它们都访问同一个数据库。一个运行,另一个抛出此异常。
实体框架提供程序类型 'MySql.Data.MySqlClient.MySqlProviderServices,MySql.Data.Entity.EF6' 在ADO.NET提供程序的应用程序配置文件中注册 无法加载不变名称'MySql.Data.MySqlClient'。使 确保使用了程序集限定名称并且程序集是 可用于正在运行的应用程序看到 http://go.microsoft.com/fwlink/?LinkId=260882了解更多信息。
从public virtual IList<NamedDbProviderService> DbProviderServices
似乎将工作解决方案从一台PC复制到另一台PC会引发此异常,就像从Git检出解决方案文件一样。我唯一能想到的是NuGet包恢复有问题,但删除或卸载软件包或软件包配置并手动替换它们并不能解决问题。
答案 0 :(得分:0)
问题似乎是在解析配置时没有加载MySql的EF驱动程序。将以下代码添加到主程序中可以修复它。
/// <summary>
/// Force the MySql.Data.Entity Assembly to be loaded
/// or the app.config file will not load
/// No need to call this function
/// </summary>
public static void Fix()
{
var name = MySql.Data.Entity.MySqlProviderInvariantName.ProviderName;
}