【问题标题】:MySql.Data reference in my own .dll only functions on development computer, not on end user's computers我自己的 .dll 中的 MySql.Data 引用仅在开发计算机上起作用,而不在最终用户的计算机上起作用
【发布时间】: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 连接网络,并且与开发它的版本完全相同(菜鸟问题)

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

【问题讨论】:

    标签: c# mysql dll reference


    【解决方案1】:

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

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

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

    MyStrategy/7f5e28c481644cb5a7754d0b7a0be47f':无法加载文件或 程序集'MySql.Data,版本=6.1.6.0,文化=中性, PublicKeyToken=c5687fc88969c44d' 或其依赖项之一。这 系统找不到指定的文件

    【讨论】:

    • 谢谢!这正是所需要的。补充一下,我的代码编译方式是一个包含 .cs 和 .dll 的单个 .zip 文件,交易软件应用程序可以读取该文件。我所做的就是将 MySql.Data 复制到那个 .zip 文件中,这样就可以正常工作了。感谢您拯救了 Rezoan! (我试图投票赞成你的答案,但我是新手,还没有足够的声誉)
    猜你喜欢
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2014-07-02
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多