0

我想提高使用 AddIn Express 开发的 .NET Excel 插件的首次运行性能。

插件在第一次执行各种任务期间运行缓慢的原因是因为 JIT 花费时间将 MSIL 转换为本机可执行机器代码。

解决此问题的标准方法是从安装程序在您的程序集上运行 NGen 以预生成本机代码。

我为我的安装程序使用了 Wix 工具集,并尝试正确设置,但我仍然没有摆脱缓慢的初始执行问题,所以我想知道是否需要做一些特定的事情来让它与 Addin Express Excel 一起工作插件。我的插件会安装到 %LocalAppData% 文件夹中,以防万一该信息很重要。

我按照这里的指南:http: //wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/ngen_managed_assemblies.html http://wixtoolset.org/documentation/manual/v3/xsd/netfx/nativeimage.html

在我的 Wix xml 中有这样的东西:

<netfx:NativeImage Id="ngen_MyExcelAddin.dll" Platform="all" Priority="0" AppBaseDirectory="TARGETDIR" />

我的安装程序构建良好并且安装良好,但初始执行缓慢的问题并没有消失,这让我相信它仍在使用 JIT。我最初的想法是我可能需要指定 AssemblyApplication 属性,但我尝试将其设置为各种 AddinExpress dll(adxloader64.dll、adxloader.dll、AddinExpress.XL.2005.dll、AddinExpress.MSO.2005.dll)没有成功。任何帮助将不胜感激。

4

1 回答 1

2

在阅读了其他论坛上的一些评论后,似乎 NGen 需要一个需要管理员权限的安装程序,并且需要在 GAC 中安装 dll。我的安装程序适用于当前用户,不需要管理员访问权限,因此不适合使用 NGen。

相反,当插件首次加载时,我做了类似的事情,通过在后台线程中预编译大多数方法,使用此链接中的代码:http: //www.codeproject.com/Articles/31316/Pre-compile-pre- JIT-your-assembly-on-the-fly-or-tr

于 2016-09-09T06:58:51.523 回答