从IronPython内部调用基于CodeDom的代码生成时的LoaderException

时间:2011-12-27 19:33:21

标签: c# ironpython codedom

我有一段使用CodeDom动态生成代码的代码。这是直截了当的:

  • CodeCompileUnit已创建并填充了类型。
  • 单位传递给CSharpCodeProvider.CompileAssemblyFromDom
  • 程序集在内存中生成,所有内容都包含在一个静态方法中,该方法返回生成类型的实例。

如果我从C#调用这个静态方法,一切正常,但如果我从IronPython调用该方法,它就会失败。没有编译错误,返回的CompiledAssembly的{​​{1}}为空。但是如果我为程序集调用CompilerResults,我会得到一个GetTypes,告诉我查看LoaderExceptions。那个是ReflectionTypeLoadException给出以下消息:

  

无法加载文件或程序集'PosData,Version = 1.0.0.0,   Culture = neutral,PublicKeyToken = null'或其依赖项之一。该   系统找不到指定的文件。“:”PosData,Version = 1.0.0.0,   Culture = neutral,PublicKeyToken = null

PosData是我自己的程序集,它包含代码生成内容,并且已由IronPython加载。一切都在一个文件夹中,所以我看不出可能缺少的东西。

任何暗示都将非常感激!

1 个答案:

答案 0 :(得分:1)

您可以为Fusion Log Viewer提供一个镜头,以获取有关正在发生的事情的更多信息。

有关如何使用它的详细信息,请参阅MSDN上的Scott Hanselman的blog entrythis page