加载嵌入式程序集

3

我正在尝试在运行时加载一个嵌入式程序集到服务器端 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保存到磁盘上,然后以这种方式加载它。现在我得到的是:无法加载文件或程序集或其某个依赖项。给定的程序集或代码库无效。


1
发现了这个旧问题,也许它适用于你的情况: (https://dev59.com/pU3Sa4cB1Zd3GeqPsRcI) - Steve
你尝试过在项目配置中检查“允许不安全的代码”吗? - Steve
1个回答

1
找到解决方案,如果有人遇到这个帖子:
-C# 在没有高安全上下文的情况下不允许您加载一个来自字节的程序集。
-有趣的是,如果您有权限先保存到文件,然后使用 Assembly.Load(filename)(我犯了使用AppDomain.CurrentDomain.Load(filename) 的错误),它将可以无问题地加载该程序集。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接