从资源加载多个程序集

本文关键字:程序集 加载 资源 | 更新日期: 2023-09-27 18:36:09

为了避免在我的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 文件重复该过程,如果没有第一个 DLL 文件,它将不再运行(但是我不必包括第二个)。因此,它似乎仅适用于上次加载的程序集。我做错了吗?

谢谢

从资源加载多个程序集

你如何"重复"这个过程?我看到一个静态方法会破坏你的程序集,如果它被调用两次,你会用第二个程序集覆盖你的第一个程序集吗?

或者你调用这个方法一次,处理两个dll?因为您最终只返回 1 个程序集当然...