我创建了一个应用程序,需要在计算机上安装 ODBC 连接器才能工作。由于我的应用程序需要连接到mysql数据库,因此它只需要一个dll文件(MySql.Data.dll)即可工作。
当我将此 dll 放在与应用程序相同的位置时,它可以正常工作。现在我想合并这个 dll,以便最后只有一个可执行文件?
如何将此依赖 DLL 与我的可执行文件合并?
最佳答案
你不能这样做,所有程序集都会从某个地方引用......
- 来自 .NET 框架路径,例如:
System.Net.dll
所有 .NET 应用程序都需要 .NET Framework 程序集才能运行,这就是想要执行应用程序的用户需要安装 .NET Framework 的原因。因此,您的应用程序知道在哪里可以找到此程序集,并且不需要您将 System.Net.dll 程序集等放置在应用程序的同一路径中即可成功运行。
- 或者像您的应用一样从外部路径。
您的应用程序知道在哪里可以找到要运行的 .NET Framework 程序集,但请稍等!它还需要一些额外的 dll 才能运行,因此这就是为什么您在编译应用程序时在同一路径中获取 MySql.Data.dll
的原因。
可能的解决方案:
1.如果您只想制作一个可执行文件,请尝试使用Spoon Studio(很难找到完整的破解版本并且购买它很昂贵)。这将使您能够嵌入任何您想要的程序集或所有 .NET Framework,因此这将使您的应用程序不依赖于任何 .NET Framework 安装或执行您的应用程序的用户计算机中所需的程序集。
2.尝试使用ILMerge
,但请阅读下面的链接以了解您的代码是否符合要求。
操作方法和重要信息:
http://www.codeproject.com/Articles/9364/Merging-NET-assemblies-using-ILMerge
关于c# - 如何将依赖的 dll (MySql.Data.dll) 与我创建的 exe 合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11605075/