【问题标题】:Ngen native image is not getting loaded if current directory is changed at runtime如果在运行时更改当前目录,则不会加载 Ngen 本机映像
【发布时间】:2014-03-07 07:16:35
【问题描述】:

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

IModuleManager.LoadModule(localWi.ModuleName);

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

【问题讨论】:

    标签: c# wpf ngen


    【解决方案1】:

    它涉及两个元素。

    • Assembly.LoadFrom 不能可靠地加载 NGEN 图像,

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

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

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

    【讨论】:

    • 是的。 Prism 使用 LoadFrom,因此不会加载 Ngen 图像。我正在寻找通过代码或配置的任何替代方式(但不是通过证明 privatePath),但没有找到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 2016-05-15
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    相关资源
    最近更新 更多