作为一个新手程序员,我有一个关于MySql.data引用的问题,我是从MySql连接器网络添加到我的代码中的。我编译的程序将被生成一个从另一个应用程序中运行的.dll。应用程序是一个股票交易程序,我的代码是一个策略,对价格数据进行评估,执行买卖订单等。
就在我认为我的策略已经完全发展的时候,我遇到了一个新的障碍,我很想有人帮助我解决这个问题。
我之所以问stackoverflow,是因为交易应用程序的支持论坛mods从他们的论坛中删除了这个问题,可能是因为它超出了他们支持的范围。
我在策略中添加了额外的.NET引用,如windows窗体和system.management等,以便它能够检查计算机的硬盘驱动器“序列号”,以确保策略在该计算机上获得许可。到目前为止一切正常,我可以通过将其导出为.dll来获得在其他计算机上运行的策略
我做的最后一个添加是添加对MySql.Data.MySqlClient的引用(这是一个必须单独下载和安装的.dll,不属于.NET的一部分),以便它可以根据联机数据库检查计算机的硬件ID,查看它是否在白名单上。我在开发计算机上运行得很好,当我试图在另一台计算机上运行时,输出窗口中出现了一条错误消息:
为策略“MyStrategy/7f5e28c481644cb5a7754d0b7a0be47f”调用“OnStartUp”方法时出现NT错误:无法加载文件或程序集“MySql.Data,Version=6.1.6.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d”或其依赖项之一。系统找不到指定的文件。
我不完全知道发生了什么,但在过去,我在代码中引用的所有来自microsoft.NET的外部.dll似乎都被转移到其他计算机上,并在其他计算机上运行得很好,而且当我的代码使用MySql.Data引用运行时,运行任何MySql命令后,程序将终止并显示有关丢失文件的错误消息。(但如果我注释掉这些代码行,它就运行得很好,只是没有我需要的许可检查)
最后一件事我可以提到更多的信息,因为我是新手,不知道这是否重要,是我安装了最新的MySQL连接网络到笔记本电脑,这是一个比6.1.6.0版本,我在开发计算机上。
不过,该策略在开发它的计算机上运行完全符合预期。
我的主要问题有两部分:
1)是否有方法嵌入或合并MySql.Data.dll,使其成为my.dll的一部分?
2)这个软件的每个最终用户是否需要在他们的计算机上安装MySql连接网,以及与它开发的版本完全相同的版本(noob问题)
任何答案、猜测和猜测都受到欢迎和赞赏。

最佳答案

只需检查程序输出目录是否包含MySql.Data dll文件。
如果不是,请尝试将MySql.Data dll文件复制到程序的输出目录。
它应该能解决你的问题。
出现此问题的原因可能是您正在从任何其他目录引用MySql.Data dll,而不是将其复制到本地项目目录。或者它没有复制到您的项目输出目录中。
所以当你在另一台机器上运行这个程序时,它在指定的目录中找不到MySql.Data dll文件,并且说
MyStrategy/7f5e28c481644cb5a7754d0b7a0be47f':无法加载文件或
程序集MySql.Data,版本=6.1.6.0,区域性=neutral,
PublicKeyToken=c5687fc88969c44d'或其依赖项之一。这个
系统找不到指定的文件

09-07 23:27
查看更多