我们有一个dll文件;让我们说X.DLL。两个嵌套的DLL
现在我们正在编写另一个DLL,我们假设使用X.DLL的一些(很少)功能的“A.DLL”。我们无法访问X.DLL的源代码。另外,我们不希望给我们的客户X.DLL和A.DLL。相反,我们想要在A.DLL中封装X.DLL,以便分发A.DLL就足够了。
是否有可能?
您的帮助表示赞赏。
新手编码器
我们有一个dll文件;让我们说X.DLL。两个嵌套的DLL
现在我们正在编写另一个DLL,我们假设使用X.DLL的一些(很少)功能的“A.DLL”。我们无法访问X.DLL的源代码。另外,我们不希望给我们的客户X.DLL和A.DLL。相反,我们想要在A.DLL中封装X.DLL,以便分发A.DLL就足够了。
是否有可能?
您的帮助表示赞赏。
新手编码器
ILMerge是用于合并多个 .NET组件成单个 .NET组件的实用程序。它适用于可执行文件 和DLL,并附带几个 选项用于控制处理 和输出格式。有关详细信息,请参阅 附带文档。
谢谢。我会试一试。 – 2010-07-08 14:32:07
我有一个场景,其中X.dll与.Net环境或Windows操作系统的后续版本不兼容。我们也没有X.dll的源代码。它只在VB6.0环境下运行/注册。在这种情况下,我们想要嵌入这个X.dll,并在与.Net兼容的vb6.0中创建一个新的.dll文件。你知道这个任务的效用吗? – bonCodigo 2015-02-25 06:00:06
将一个dll封装到另一个dll是不可能的。
出路可能在于您可以从X.DLL供应商处获得一个库,并通过您的代码静态链接到它。
黑客可能会携带X.DLL作为你的dll资源,然后解压并加载到运行时。
对不起ULYSES,但它当然不是“不可能的”。我建议,但并非不可能。 – torak 2010-07-08 14:25:08
这不是不可能的,但它需要发送字节码,您的eslf或类似的 – 2010-07-08 14:25:28
取决于DLL的性质。如果他们是托管代码,ILMerge可以做到这一点。如果不进行管理,你将不得不用Win32 LoadLibrary来解决大部分时间。 – 2010-07-08 14:37:49
你用c#标记了你的问题。
如果这些是托管的程序集DLL,如果代码是c#,它们将会是,那么您可以使用ILMerge完成您想要的操作。
出于兴趣,你为什么不给他们X.DLL? – CJM 2010-07-08 14:22:22
原因是我们不希望它们具有X.DLL中包含的所有功能。 X.DLL和A.DLL将用于开发一些应用程序,我们希望它们具有仅包含在A.DLL中的函数。 – 2010-07-08 14:25:14
是的,为什么你不想给他们.DLL?试图避免执照费用? – Jeroen 2010-07-08 14:36:48