使用MySQL在Visual Studio 2017上未注册类错误
我正在将我的独立VB.NET开发的Windows窗体应用程序从SQL迁移到MySQL,同时使用在线数据库。下面是一个场景使用MySQL在Visual Studio 2017上未注册类错误,mysql,vb.net,visual-studio,visual-studio-2017,mysql-connector,Mysql,Vb.net,Visual Studio,Visual Studio 2017,Mysql Connector,我正在将我的独立VB.NET开发的Windows窗体应用程序从SQL迁移到MySQL,同时使用在线数据库。下面是一个场景 该应用程序是在Visual Studio 2017 VB.NET中开发的,是一个Windows窗体应用程序 我的数据库托管在Hostinger上 显然,如果我想从VS连接到MySQL,我需要两个组件 用于VisualStudio的MySQL VisualStudioMySQL连接器 问题开始了,我尝试了这两个组件的不同版本,但仍然出现以下错误 现在,根据在线论坛和此处回答的
如果您的应用程序不在Framework4.6或更高版本上,您将需要一个遗留的MySql连接器。要使用最新版本的连接器,请删除所有引用和导入,关闭Visual studio,卸载当前连接器,以及MySQL for Visual studio并安装最新版本的连接器。不要安装MySQL for Visual Studio,除非您正在通过设计器构建应用程序,否则您不需要它。将框架更改为4.6+,并将对的引用添加到MySql.Data并导入名称空间。如果这不能解决问题,我将删除此答案。如果您的应用程序不在Framework 4.6或更高版本上,您将需要一个旧版MySql连接器。要使用最新版本的连接器,请删除所有引用和导入,关闭Visual studio,卸载当前连接器,以及MySQL for Visual studio并安装最新版本的连接器。不要安装MySQL for Visual Studio,除非您正在通过设计器构建应用程序,否则您不需要它。将框架更改为4.6+,并将对的引用添加到MySql.Data并导入名称空间。如果这不能解决问题,我将删除此答案。这看起来像是COM错误。这些都是调试的乐趣。显然,MySQL.net提供商在幕后使用COM,也许是为了与本机代码对话 我没有解决方案,我在.net上没有MySQL的经验,我对VB深恶痛绝。所以,我可能不是你的救世主,但这里有一些提示和建议,可能有助于跟踪COM错误。这是最后的手段
OutputDebugString
捕获日志消息。如果幸运的话,MySQL本机代码可能会发出调试字符串- 主方法启动后立即打印启动消息。在消息中包含
的值(将在下面解释原因)Environment.Is64BitProcess
- 等待用户通过
按键。这是给您时间来设置过程监视器Console.ReadKey()
- 按键后尝试连接到MySQL。用丰富的日志记录围绕每个语句
- 如果您在64位计算机上,请将Visual Studio配置为仅以x64代码为目标
任何CPU
目标与首选32位
VS设置相结合只会让一切更加混乱。在调试时,最好确定运行的CPU目标
另一个技巧是在调试器中运行,并在出现错误对话框时强制它全部中断。我不知道当控制台模式应用程序失败时,是否会出现错误框,但如果出现,调用堆栈可能会帮助您找到正确的方向
最后一个提示:为nativ配置VS