2016-09-08 63 views
0

我想提高使用AddIn Express開發的.NET Excel Addin的首次運行性能。將NGen與Wix工具集一起用於AddIn Express Excel Addin

插件在第一次執行各種任務期間緩慢運行的原因是因爲JIT花時間將MSIL轉換爲本機可執行的機器代碼。

解決此問題的標準方法是從您的安裝程序在您的程序集上運行NGen以預生成本機代碼。

我爲我的安裝程序使用了Wix Toolset,並試圖讓事情正確設置,但我仍然沒有擺脫慢速的初始執行問題,所以我想知道是否有某些特定的事情需要我去做這個工作使用Addin Express Excel Addins。我的插件安裝到%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

,並有這樣的事情在我的維克斯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)設置爲沒有成功。任何幫助將不勝感激。

+0

貌似adxloader不加載本機圖像由NGen生成..您是否嘗試聯繫Add-in Express開發人員? –

+0

[Fusion logging](http://www.grimes.nildram.co.uk/workshops/fusWSTwelve.htm#log_binding_native_images)將有助於查找加載程序集的文件。啓用成功綁定和本機圖像。 –

回答

2

在閱讀了其他論壇上的一些評論之後,NGen似乎需要一個需要管理員權限的安裝程序,並且需要在GAC中安裝dll。我的安裝程序適用於當前用戶,不需要管理員權限,因此不適合使用NGen。

相反,我通過做類似的東西預編譯大部分在後臺線程的方法時使用的代碼從這個鏈接第一次加載的插件: http://www.codeproject.com/Articles/31316/Pre-compile-pre-JIT-your-assembly-on-the-fly-or-tr