从资源加载多个程序集

时间:2013-10-21 12:10:02

标签: c# .net wpf .net-assembly

为了避免必须在我的exe文件中包含两个程序集,我将它们作为嵌入式资源包含在我的WPF应用程序中。现在我可以通过这样做加载第一个程序集:

static Assembly ResolveAssembly(object sender, ResolveEventArgs args)
{
    string resourceName = "someDLLfileInResources";
    using (Stream stream = parentAssembly.GetManifestResourceStream(resourceName))
    {
        byte[] block = new byte[stream.Length];
        stream1.Read(block, 0, block.Length);
        return Assembly.Load(block);
    }
}

这有效,程序将在没有第一个DLL的情况下运行。现在,如果我重复第二个DLL文件的过程,它将不再运行没有第一个(但我不必包括第二个)。所以它似乎只适用于最后加载的程序集。我做错了吗?

谢谢

1 个答案:

答案 0 :(得分:0)

你是如何“重复”这个过程的?我看到一个静止方法,它会使你的程序集发生变形,如果它被调用两次,你是否用第二个程序集覆盖你的第一个程序集?

或者你在调用这个方法一次,处理这两个dll的?因为你最后只返回1个装配......