加载嵌入式组件

本文关键字:组件 嵌入式 加载 | 更新日期: 2023-09-27 18:25:41

我正试图在运行时在服务器端DLL上加载嵌入式程序集。我嵌入的程序集是我自己的代码。

尝试加载程序集时,出现无法验证的代码失败策略检查错误。

有办法解决这个问题吗?

这是代码:

    byte[] resource = null;
    using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name))
    {
        if (stream != null)
        {
            resource = new byte[stream.Length];
            stream.Read(resource, 0, (int)stream.Length);
        }
    }
    AppDomain.CurrentDomain.Load(resource);

编辑:

这有点冒险,但我试着先把DLL保存到磁盘上,然后用这种方式加载。我现在得到的是:无法加载文件或程序集或其某个depenency。给定的程序集或代码库无效。

加载嵌入式组件

找到了一个解决方案,如果有人无意中发现了这篇文章:

-C#不允许从字节加载程序集,除非您处于高安全性上下文中。

-有趣的是,如果您有权先保存到文件,然后使用Assembly.Load(filename)(我犯了使用AppDomain.CurrentDomain.Load(filename)的错误),那么加载程序集就没有问题。