c# - 我自己的 .dll 中的 MySql.Data 引用仅在开发计算机上起作用,在最终用户的计算机上不起作用

标签 c# mysql dll reference

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

就在我认为我的策略已经完全成熟的时候,我遇到了一个新的障碍,我希望有人能帮助我解决。

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

我一直在为我的策略添加额外的 .NET 引用,例如 Windows 窗体和 system.management 等,以便它能够检查计算机的硬盘驱动器“序列号”以确保该策略已获得许可那台电脑。到目前为止一切正常,我能够通过将其导出为 .dll 来获得在其他计算机上运行的策略

我所做的最新和最后的添加是添加对 MySql.Data.MySqlClient 的引用(这是一个必须单独下载和安装的 .dll,它不是 .NET 的一部分)以便它可以检查将计算机的硬件 ID 与在线数据库进行比较,以查看它是否在白名单中。我让它在开发计算机上完美运行,当我试图让它在我的另一台计算机上运行时,输出窗口中出现了这条错误消息:

NT 为策略“MyStrategy/7f5e28c481644cb5a7754d0b7a0be47f”调用“OnStartUp”方法时出错:无法加载文件或程序集“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,使其成为我的 .dll 的一部分?

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

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

最佳答案

Just check if your programs output directory contains the MySql.Data dll file. If not Try to copy the MySql.Data dll file to the output directory of your program. it should solve your problem.

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

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

MyStrategy/7f5e28c481644cb5a7754d0b7a0be47f': Could not load file or assembly 'MySql.Data, Version=6.1.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. The system cannot find the file specified

关于c# - 我自己的 .dll 中的 MySql.Data 引用仅在开发计算机上起作用,在最终用户的计算机上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17418317/

相关文章:

c++ - 如何访问线程外的线程数据

c# - 子线程结束后如何在主线程中运行一个方法?

c# - 将值存储在 TempData 中对多个并发用户安全吗?

C++ Visual Studio 2010 "Unable to start Program"

MySQL CrossTab 结果包含非不同列

mysql - 如何在一行中显示两条不同的记录?

java - 如何将 java rxtx 库包含到我的 Minecraft mod 中?

c# - 没有开关或 If/Then 的工厂模式

c# - XNA 游戏分发问题

mysql - 查询用户未访问的页面