我正在尝试在MSI安装例程期间从C#程序中的资源流动态加载一些(购买的)程序集,但我收到“无法验证的代码失败的策略检查”。
我在网上阅读了一些关于使用/ clr:safe编译嵌入式程序集的提示,但我没有这个选项。有没有办法解决这个政策检查?
感谢。
答案 0 :(得分:4)
加载无法验证的代码的唯一方法是来自完全信任进程(或可能是应用程序域)并禁用验证。
答案 1 :(得分:1)
这可能不再适用,但我最近遇到了同样的问题。如果您将流并将其粘贴到临时文件中,则可以使用Assembly.LoadFrom来加载程序集。
答案 2 :(得分:1)
它已经太晚了,但它可能对某人有所帮助。
我在项目中使用了Sqlite DLL,当我在沙盒环境中部署代码时,我遇到了异常(见下文)
[FileLoadException: Unverifiable code failed policy check. (Exception from HRESULT: 0x80131402)]
[FileLoadException: Could not load file or assembly 'System.Data.SQLite, Version=1.0.79.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139' or one of its dependencies. Unverifiable code failed policy check. (Exception from HRESULT: 0x80131402)]
我在web.config文件的system.web中添加了trust level,并且工作正常。
<trust level="Full|High|Medium|Low|Minimal" originUrl="url"/>