LoaderException при вызове генерации кода на основе CodeDom изнутри IronPython
У меня есть фрагмент кода, который использует CodeDom для генерации кода на лету. Это прямо вперед:
-
CodeCompileUnit
создается и заполняется типом. - блок передается в
CSharpCodeProvider.CompileAssemblyFromDom
. - сборка генерируется в памяти и все упаковывается в один статический метод, который возвращает экземпляр сгенерированного типа.
Если я вызываю этот статический метод из C#, все работает нормально, но он терпит неудачу, если я вызываю метод из IronPython. Есть нет ошибок компиляции и CompiledAssembly
возвращенного CompilerResults
не равно null. Но если я вызываю GetTypes
для сборки, я получаю ReflectionTypeLoadException
, который говорит мне посмотреть на LoaderExceptions. Это один из FileNotfoundException
, дающий следующее сообщение:
Не удалось загрузить файл или сборку ' PosData, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' или одна из его зависимостей. То система не может найти указанный файл.": "PosData, Version=1.0.0.0, Культура=нейтральная, PublicKeyToken=null
PosData это моя собственная сборка, которая содержит материал для генерации кода и которая уже загружена IronPython. Все находится в одной папке, поэтому я не вижу, что может отсутствовать.
Любой намек будет очень признателен!
1 ответ:
Вы можете дать Просмотрщику журнала Fusion шанс получить дополнительную информацию о том, что происходит.
Смотрите запись в блоге Скотта Ханселмана иэту страницу на MSDN для получения подробной информации о том, как ее использовать.