加载嵌入式组件
本文关键字:组件 嵌入式 加载 | 更新日期: 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)
的错误),那么加载程序集就没有问题。