我想在安装结束时执行nGen,只是为了提高应用程序首次启动的感知性能。我怎么能这样做?有一些最佳做法吗?我可以确定nGen始终与.NET Framework一起安装吗?
谢谢!
答案 0 :(得分:8)
您可以使用自定义安装程序操作来启动程序集。以下链接更详细地解释了这一点:
http://www.dotnetperls.com/ngen
我还记得对Paint.NET的安装程序(包括.NET Framework引导,预JITting等)的一个很好的讨论,但我现在找不到它。如果我再次遇到它,我会编辑这篇文章。
答案 1 :(得分:1)
首先,“是”你可以保证,如果安装了.Net框架,他们就拥有了Ngen。您唯一需要知道的是它们安装了哪个版本,因为它在1.1和2.0之间有所不同。我过去所做的只是创建了一个脚本,我的安装程序在最后调用它在所有程序集上运行ngen。
答案 2 :(得分:1)
答案 3 :(得分:0)
要提高启动时的感知性能,请查看应用程序中的静态。启动应用程序时,许多静态可能会导致大量开销。
此外,请考虑在EXE中只使用主窗体,在单独的DLL中使用其他所有内容。这不仅可以提高性能,还可以帮助您保证从数据中分离视图。
最后,如果您在NGENing上设置,请查看有关在MSI中运行自定义操作的帮助。您应该能够设置自定义操作以执行所需操作。
答案 4 :(得分:0)
正如'Micah'所说,是,你会发现.en Framework安装了NGen。
查看WiX 3.5安装程序示例如何在安装过程中对组件进行NGen。
<强> NGen: Creating Setup Projects 强>
我希望这会对你有所帮助。
答案 5 :(得分:0)
>ngen install c:\myfiles\MyAssembly.exe