【问题标题】:Ngen without installer没有安装程序的 Ngen
【发布时间】:2012-06-20 16:53:39
【问题描述】:

我以前没有使用 NGen,但现在我需要提高 WPF 应用程序的启动性能。据我了解,常见情况是在应用程序安装期间运行 ngen 。但是我的应用程序用于满足公司内部需求并且没有安装程序(它只会使事情复杂化)。

还有其他运行ngen的方法吗?如果我在第一次启动应用程序时这样做怎么办?我需要管理员权限吗?

【问题讨论】:

    标签: .net ngen


    【解决方案1】:

    根据MSDN备注下的第一行),您需要管理权限才能运行 ngen。将您的应用程序打包在一个简单的 MSI 中可能会更容易,因为我认为您不能从应用程序内部提升您的权限来运行 ngen。您必须更改清单文件,这会导致您的应用在每次启动时都需要管理权限。

    【讨论】:

      【解决方案2】:

      如果您的应用面向 .NET 4.5 或更高版本并在 Windows 8 或更高版本上运行,那么您也许可以使用 Auto NGEN。 Auto NGEN 是在用户计算机空闲时运行的维护任务。维护任务自动在“合格”程序集上运行 NGEN。

      对于您的方案,您需要将应用安装到 GAC 中。首次启动应用时,.NET 运行时会生成使用日志并记下您的应用程序集。 Auto NGEN 任务只是使用这些日志并为您运行 NGEN。因此,通常您会在维护任务运行完成后获得改进的启动性能。 (我认为它通常在凌晨 3 点运行)

      有关一些信息,请参阅此链接:http://eknowledger.wordpress.com/2012/05/04/clr-4-5-net-framework-kernel-improvements/

      请注意,就像 NGEN 一样,将程序集安装到 GAC 需要管理员权限。 :) 因此,您可能更喜欢创建安装程序并在安装时启用 NGEN,如上述答案中所述。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-29
        • 1970-01-01
        • 2019-07-10
        相关资源
        最近更新 更多