如何在安装结束时运行nGen(MSI)?

我想在安装结束时执行nGen只是为了提高应用程序首次启动的感知性能。 我怎么能这样做? 有一些最佳做法吗? 我可以确定nGen始终与.NET Framework一起安装吗?

谢谢!

您可以使用自定义安装程序操作来生成程序集。 以下链接更详细地解释了这一点:

http://www.dotnetperls.com/ngen

http://www.bobpowell.net/prejit.htm

我还记得对Paint.NET的安装程序(包括.NET Framework引导,预JITting等)的一个很好的讨论,但我现在找不到它。 如果我再遇到它,我会编辑这篇文章。

首先,“是”你可以保证,如果他们安装了.Net框架,他们就拥有了Ngen。 你唯一需要知道的是他们安装了哪个版本,因为它在1.1和2.0之间有所不同。 我过去所做的只是简单地创建了一个脚本,我的安装程序在最后调用它在所有程序集上运行ngen。

这篇博文应该是有用的。

编辑 :由于你没有使用Wix,所以这也可能有用。

要提高启动时的感知性能,请查看应用程序中的静态。 启动应用程序时,许多静态可能会导致大量开销。

另外,考虑在EXE中只使用主表单,在单独的DLL中使用其他所有内容。 这不仅可以提高性能,还有助于保证您从数据中分离视图。

最后,如果您在NGENing上设置,请查看有关在MSI中运行自定义操作的帮助。 您应该能够设置自定义操作以执行所需操作。

正如’Micah’所说, 是的 ,你会发现NGen与.Net Framework一起安装。

查看WiX 3.5安装程序示例如何在安装过程中对组件进行NGen处理。

NGen:创建安装项目

我希望这能帮到您。

启动ngen.exe

 >ngen install c:\myfiles\MyAssembly.exe