2

作为新手程序员,我有一个关于我从 MySql 连接器网络添加到我的代码的 MySql.data 引用的问题。我编译的程序将被制作成在另一个应用程序中运行的 .dll。该应用程序是一个股票交易程序,我的代码是一个策略,用于评估价格数据并执行买卖订单等。

就在我认为我的策略已经完全发展的时候,我遇到了一个新的障碍,我很想得到别人的帮助来解决。

我问 stackoverflow 是因为交易应用程序的支持论坛模块从他们的论坛中删除了这个问题,可能是因为它超出了他们可支持的边界。

我一直在为我的策略添加额外的 .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 运行。数据参考,一旦运行任何 MySql 命令,程序就会终止并显示有关丢失文件的错误消息。(但如果我注释掉那些代码行,它运行良好,只是没有我需要的许可检查)

最后一件事我可以提到更多信息,因为我是这个开发领域的新手并且不知道这是否重要,我在笔记本电脑上安装了最新的 MySQL 连接网络,它是比 6.1 更高的版本我在开发计算机上拥有的.6.0。

该策略在开发它的计算机上完全按照预期运行。

我的主要问题有两个部分:

1) 有没有办法嵌入或合并 MySql.Data .dll 以便它可以成为我的 .dll 的一部分?

2)这个软件的每个最终用户是否需要在他们的计算机上安装 MySql 连接网络,并且与开发它的版本完全相同(菜鸟问题)

欢迎和赞赏任何答案、猜测和推测。

4

1 回答 1

0

只需检查您的程序输出目录是否包含MySql.Data dll文件。如果没有尝试将MySql.Data dll文件复制到程序的输出目录。它应该可以解决您的问题。

发生问题的原因可能是您从任何其他目录引用 MySql.Data dll,而不是将其复制到本地项目目录。或者它可能没有复制到您的项目输出目录中。

因此,当您将程序运行到另一台机器时,它无法在指定目录中找到 MySql.Data dll 文件并说

MyStrategy/7f5e28c481644cb5a7754d0b7a0be47f':无法加载文件或程序集“MySql.Data,Version=6.1.6.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d”或其依赖项之一。该系统找不到指定的文件

于 2013-07-02T06:32:22.850 回答