我遇到的问题是我制作的Visual Basic 2013程序(在vb.net中),问题在于MySQL.data.dll,我尝试在GAC中将copy local更改为true,我已经尝试将我的MySQL.data.dll升级到最新版本,但无论我做什么它只有在运行它时MySQL.data.dll文件夹与可执行文件位于同一文件夹中才有效。
(请注意,此错误仅发生在其他计算机上,而不是我的计算机上)
这确实是错误:
[无法加载文件或程序集'MySql.data,Version = 6.9.5.0,Culture = neutral,PublicKeyToken = c5687fc88969c44d'或其依赖项之一。系统找不到指定的文件。]
请帮助,我不希望我的用户必须将MySQL.data.dll放在一个带有exe的文件中才能运行它(原因很明显。)
答案 0 :(得分:2)
根据编译器输出中出现的版本检查MySQL程序集的版本。
请勿使用错误列表查看“输出”窗口,然后从下拉列表中选择“构建”并查找错误。
最可能的原因是您的应用程序链接到MySQL的特定(可能是多个)版本,并且引用的MySQL的特定版本存在冲突。您可能还想更改程序集引用的特定版本属性...
How exactly does the "Specific Version" property of an assembly reference work in Visual Studio?
asp server error ' Could not load file or assembly ' but the assembly is definitely there.
这很简单。您需要确保对程序集的引用是正确的。我会避免将MySQL安装到GAC中。如果您已卸载MSI,请不要安装MSI,然后下载zip存档
mysql-connector-net-6.9.5-noinstall.zip
将文件解压缩到文件夹中,引用解决方案中的那些程序集。如果您正在使用源代码管理,请将包含MySQL程序集的文件夹检查到源代码管理中,以及解决方案的其余部分。
如果您有多个引用MySQL的程序集,则应检查它们是否都引用相同的版本,来自同一位置和/或将“Specific Version”属性设置为false并将“Copy Local”设置为true。