LoaderException при вызове генерации кода на основе CodeDom изнутри IronPython - PullRequest
2 голосов
/ 27 декабря 2011

У меня есть кусок кода, который использует CodeDom для генерации кода на лету. Это прямо вперед:

  • CodeCompileUnit создан и заполнен типом.
  • Единица передается на CSharpCodeProvider.CompileAssemblyFromDom.
  • Сборка генерируется в памяти, и все помещается в один статический метод, который возвращает экземпляр сгенерированного типа.

Если я вызываю этот статический метод из C #, все работает нормально, но происходит сбой, если я вызываю метод из IronPython. Нет ошибок компиляции и CompiledAssembly из возвращенного CompilerResults НЕ является нулевым. Но если я вызываю GetTypes для сборки, я получаю ReflectionTypeLoadException, который говорит мне, чтобы посмотреть на LoaderExceptions. Этот FileNotfoundException дает следующее сообщение:

Не удалось загрузить файл или сборку 'PosData, версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = null 'или одна из ее зависимостей. система не может найти указанный файл. ":" PosData, версия = 1.0.0.0, Культура = нейтральная, PublicKeyToken = ноль

PosData - моя собственная сборка, которая содержит материал для генерации кода и уже загружена IronPython. Все в одной папке, поэтому я не вижу, что может отсутствовать.

Любая подсказка будет очень признательна!

1 Ответ

1 голос
/ 06 января 2012

Вы можете дать Fusion Log Viewer шанс получить больше информации о том, что происходит.

Подробнее см. В блоге Скотта Хансельмана и эту страницу в MSDNо том, как его использовать.

...