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