本機鏡像服務

Ngen Ngen Ngen

本機映像服務是一項用於生成和維護本機映像的 Windows 服務。本機映像服務可使開發人員將本機映像的安裝和更新推遲到計算機空閒時進行。
通常,由應用程式或軟體更新的安裝程式啟動本機映像服務。對於優先權為 3 的操作,該服務在計算機空閒時執行。該服務可保存自身狀態,如果需要,在進行多次重新啟動後,服務仍能繼續運行。可以將多個映像編譯排入佇列。
該服務還可與手動執行的 Ngen.exe 命令進行互動。手動命令的優先權高於後台活動。
注意
在 Windows Vista 上,本機映像服務的名稱顯示為“Microsoft。NET Framework NGEN v2.0.50727_X86”或“Microsoft。NET Framework NGEN v2.0.50727_X64”。在 Microsoft Windows 的所有早期版本上,該名稱顯示為“.NET Runtime Optimization Service v2.0.50727_X86”或“.NET Runtime Optimization Service v2.0.50727_X64”。

啟動推遲的操作
在開始安裝或升級之前,建議暫停該服務。這確保在安裝程式複製檔案或將程式集放入全局程式集快取時,該服務不會執行。下面的 Ngen.exe 命令行可暫停該服務:
ngen queue pause
當所有推遲的操作都已排入佇列時,下面的命令允許服務繼續進行:
ngen queue continue
若要在安裝新的應用程式或更新共享組件時推遲本機映像的生成,請將 /queue選項用於 install或 update操作。下面的 Ngen.exe 命令行安裝共享組件的本機映像,並對可能受影響的所有根進行更新:
ngen install MyComponent /queue ngen update /queue
update操作重新生成所有已失效的本機映像,而不僅僅是那些使用 MyComponent的映像。
如果應用程式由許多根組成,您可以控制推遲的操作的優先權。下面的命令對三個根的安裝進行排隊。Assembly1最先安裝,不等待空閒時間。Assembly2也不用等待空閒時間即可進行安裝,但需要在優先權為 1 的所有操作完成之後才可安裝。Assembly3在服務檢測到計算機處於空閒狀態時進行安裝。
ngen install Assembly1 /queue:1 ngen install Assembly2 /queue:2 ngen install Assembly3 /queue:3
使用 executeQueuedItems操作可強制排隊的操作同步發生。如果提供可選優先權,則此操作僅影響具有相等或更低優先權的排隊操作。默認優先權為 3,因此下面的 Ngen.exe 命令立即處理所有排隊的操作,並且在這些操作完成之後才會返回:
ngen executeQueuedItems
同步命令由 Ngen.exe 執行,並且不使用本機映像服務。可在本機映像服務正在運行時使用 Ngen.exe 執行操作。
服務關閉
在執行包含 /queue選項的 Ngen.exe 命令啟動該服務之後,服務在後台運行,直到所有操作完成。該服務可保存自身狀態,如果需要,在進行多次重新啟動後,服務仍能繼續運行。當該服務檢測到已沒有排隊的操作時,它重置自身狀態以使其在計算機下次啟動時不會重新啟動,然後關閉自身。
服務與客戶端的互動
.NET Framework 2.0 版中,與本機映像服務進行的唯一互動是通過命令行工具 Ngen.exe 進行的。在安裝腳本中使用該命令行工具對本機映像服務的操作進行排隊,並與該服務進行互動。

相關詞條

熱門詞條

聯絡我們