如果在运行时更改当前目录,则不会加载Ngen本机映像

时间:2014-03-07 07:16:36

标签: c# wpf ngen

所以我已经NGENed一个程序集,但它没有被运行时使用,因为在运行时当前的应用程序目录被更改为 Directory.SetCurrentDirectory(requiredDirectory)因此运行时没有使用Ngen程序集。
我们如何加载程序集:

IModuleManager.LoadModule(localWi.ModuleName);

我们正在使用WPF PRISM IModuleManager在朗姆酒时加载程序集。但在此之前必须更改当前的应用程序目录,如上所示。 所以我们做了以上所有事情,然后没有使用Ngen程序集。 知道我们该怎么做吗?

1 个答案:

答案 0 :(得分:0)

它涉及两个要素。

  • Assembly.LoadFrom无法可靠地加载NGEN图片,

http://blogs.msdn.com/b/abhinaba/archive/2014/02/18/net-ngen-explicit-loads-and-load-context-promotion.aspx

    如果您仔细分析PRISM源代码,
  • IModuleManager.LoadModule实际上取决于Assembly.LoadFrom

http://compositewpf.codeplex.com/SourceControl/latest#V4/PrismLibrary/Desktop/Prism/Modularity/AssemblyResolver.Desktop.cs