我在 C# 中有我的项目,在 C# 中有一个 .dll。我已经看到可以在其他语言中包含 dll 并在运行时从 exe 中提取 .dll。
我将如何在 C# 中实现这一点?
您可以将程序集作为资源文件嵌入到另一个程序集中(只需转到项目属性并打开资源部分)。
接下来,您可以在运行时将资源文件检索到流中,方法是使用Assembly.GetManifestResourceStream()
.
最后,您可以将程序集加载到当前应用程序域或单独的应用程序域中Assembly.Load(byte\[\])
(通过将资源流加载到字节数组中)。
因此,您可以直接从内存中加载资源程序集,而无需先将其保存到磁盘。
您现在可以使用Assembly.GetType
重载之一从程序集中加载类型。当然,您可能希望在主程序集和资源程序集之间定义一些协定,以便您可以使用此程序集内的自定义类型。