我已经创建了使用C#
具有mysql
数据库的桌面应用程序。我已经安装了mysql connector
以连接到mysql DB
.
当我给出项目主管的绝对路径时,我可以成功运行应用程序。但是,当我.exe
从bin/release
文件夹中复制文件时,应用程序不起作用。它需要MySql.Data.dll
在当前文件夹中,然后只有它起作用,我们如何删除这种依赖关系?
我检查了参考中的其他属性,例如Copy Local = true。
它仍然无法正常工作。
您可能会在 GAC 中安装 DLL,但我个人不会 - 如果不需要任何 GAC 条目,部署应用程序会更简单。.NET 应用程序要求它使用的第三方库与可执行文件位于同一位置是完全正常的。您依赖于该 DLL,因此它必须在某处可用。这必须是一个中心位置(GAC)或与 exe 文件一起。
我建议您将 DLL 与可执行文件一起复制到您需要的任何地方。
另一种选择是将程序集与ilmerge合并,但除非您真的必须这样做,否则我建议您不要这样做。(我不反对 ilmerge,但我不喜欢从最简单的部署模型中采取任何步骤,除非我必须这样做。)