绑定/附加.DLL到.EXE

时间:2012-06-30 08:16:44

标签: c# dll binding

我的项目在C#中,而.dll也在C#中。我已经看到可以包含dll并在运行时以其他语言从exe中提取.dll。

我将如何在C#中实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以将程序集作为资源文件嵌入到另一个程序集中(只需转到项目属性并打开资源部分)。

接下来,您可以使用Assembly.GetManifestResourceStream()将运行时的资源文件检索到流中。

最后,您可以使用Assembly.Load(byte\[\])在当前应用程序域或单独的应用程序域中加载程序集(通过将资源流加载到字节数组中)。

因此,您可以直接从内存加载资源程序集,而无需先将其保存到磁盘。

您现在可以从程序集加载类型,其中一个Assembly.GetType重载。当然,您可能希望在主程序集和资源程序集之间定义一些契约,因此可以使用此程序集中的自定义类型。