Я собираюсь дать пример использования System.Data.SQLite.DLL, который является смешанным блоком с неуправляемым кодом: Если я выполняю это:
var assembly= Assembly.LoadFrom("System.Data.SQLite.DLL")
Никакие исключения не выдаются, но если я делаю это:
var rawAssembly = File.ReadAllBytes("System.Data.SQLite.DLL");
var assembly = Assembly.Load(rawAssembly);
CLR бросает FileLoadException с отказавшей проверкой политики "кода Неподдающегося проверке. (Исключение из HRESULT: 0x80131402)". Скажем, я пытаюсь загрузить этот блок на дочернем AppDomain, как я могу настроить безопасность AppDomain, чтобы позволить мне, проходят проверку политики?
Мы стали жертвой неприятного сообщения об исключении. Загрузка сборок с помощью Assembly.Load (byte []), содержащих неуправляемый код, не поддерживается. Это тема отзыва .
ОБНОВЛЕНИЕ: связанный элемент обратной связи исчез, удален как часть очистки во время выпуска VS2012. Единственная его часть, которую можно восстановить, - это этот фрагмент, скопированный с другой веб-страницы:
«[…] мы разрешаем загружать только изображения ILOnly […], поскольку все остальное небезопасно» -
ОБНОВЛЕНИЕ: ссылка исправлена с резервной копией archive.org.