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