是否可以预先生成NGen图像,以便客户不必这样做?

Eug*_*sky 9 clickonce ngen

我们的应用程序通过ClickOnce分发,平均需要10.8秒才能启动.在ngen.exe上运行后(在ClickOnce安装它的目录中),平均启动时间为6.4秒.这显然是一个巨大的加速(40%),如果可能的话我想利用ngen-ification.

Ron的回答是否有可能将NGen用于ClickOnce部署?显示如何在客户的机器上完成它,假设我猜他运行的是Windows XP,因为它想要我的Windows 7机箱上的管理员权限,所以这似乎不是一般的解决方案.

此外,ngen 在我的盒子上花了40秒来编译属于该应用程序的所有程序集.

理想情况下,我希望将所有(主要)架构的应用程序作为构建过程的一部分,因此可以将其发送给客户,而无需用户接受"可以作为管理员执行".弹出然后等待40秒.

那可能吗?

nvu*_*ono 9

如果没有Windows 7上的管理访问权限,则无法执行此操作.

问题不是本机映像的实际生成,而是安装到需要管理权限的本机映像缓存(C:\ windows\assembly \nativeImages_v#xxxxxxxxx)中.因此,即使您找到了为所有目标体系结构预生成本机映像的方法,您也无法将它们放入适当的位置以供运行时考虑使用它们.

您不能将它们与常规二进制文件并排放置,因为它们将无法正确管理 - 当您进行某些安全策略更改,应用.net框架更新或其他更改时,您会遇到麻烦使引用的程序集使本机映像无效,并且需要运行"ngen update"命令.Microsoft目前似乎不支持使用ClickOnce部署的ngen用例.