我有一个编译为DLL的C#类库。我的类库也引用了另一个类库DLL。
我需要将依赖DLL作为嵌入式资源添加,因此我只有1个DLL文件。此文件是我无法控制的软件插件,软件无法正确解析依赖DLL。
我找到了向Windows窗体项目添加类库的示例,但无法找到如何在类库项目中将类库添加为嵌入式资源。
答案 0 :(得分:0)
将程序集作为常规文件添加到项目中,而不是项目根目录中的引用(它可以在任何地方,但是更容易将它放在那里进行此解释)。
在解决方案资源管理器中单击它,然后在属性窗口中设置'构建操作'到嵌入式资源'。
您可以使用以下代码段在运行时加载程序集(请记住更改传递给GetManifestResourceStream的字符串):
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("TestProject.MyAssembly.dll"))
{
if (stream == null)
{
throw new InvalidOperationException("Cannot find resource.");
}
using (var reader = new BinaryReader(stream))
{
var rawAssembly = new byte[(int)stream.Length];
reader.Read(rawAssembly, 0, (int)stream.Length);
var assembly = Assembly.Load(rawAssembly);
// Do what you want with the assembly
}
}