web-dev-qa-db-ja.com

ngen.exe高CPUウィンドウ10-アセンブリアンインストールエンドレスループ

コンピュータを数分間アイドル状態にしておくといつでも戻ってきて、Process Explorerは 'ngen.exe'が実行中で、4つのCPUのうち2つを占有していることを示します。

質問:バックグラウンドタスクとしてNGEN.exeをオフにする方法はありますか?

コンピュータをアイドル状態にするたびにコンピュータを「自動的に」実行するのではなく、(インターネット上の他の多くの場合と同様に)すべての.netバイナリを一度にコンパイルしたいと思います。私はマイクロソフトフォーラム全体をチェックしてきましたが、これまでのところ、この問題に対する完全な回答を持つ人はいません。多くの人が同じ問題を抱えています。

どうやら.netフレームワークの一部のライブラリは再コンパイルする必要があり、「スタック」してCPUが高レベルになり、繰り返しループします。

私はこれと同じ問題を経験したばかりで、別のスレッドがあります 答えようとしていますが、不完全です

/ HKLM/SOFTWARE/Microsoft/Windows/Current Version/RUNのRegeditには、.netコンパイラーを実行するためのエントリーがありません。他の何かがngen.exeをトリガーさせている必要があります。

誰かがこれを実行するきっかけとなる可能性のある他の場所を投稿できますか?

他の多くの人がそうするはずなので、私はそれをオフにしたいと思います。 Windows 10の自動更新も無効にしました。

更新:プロセスエクスプローラーは、これが実行されているものだと言います:

"C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe"アンインストール "C:\ WINDOWS\Assembly\NativeImages_v4.0.30319_64\Microsoft.Vf‌ 9a08577#\ 328b1bc4205‌ c08821860805bf5e6c99‌ e\Microsoft.VisualSt‌ udio.Tools.Applicati‌ ons.Hosting.ni.dll "/ noroot/LegacyServiceBehavior – Viktor 5分前

「C:\ Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe」アンインストール「C:\ WINDOWS\Assembly\NativeImages_v2.0.50727_32\Presentation‌ Framewo#\ 7fa93028119‌ b98117acfd5ea18f15c1‌ 3\PresentationFramew‌ ork.ni .dll "/ noroot/LegacyServiceBehavior – Viktor 4分前編集

"C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe"アンインストール "C:\ WINDOWS\Assembly\NativeImages_v2.0.50727_64\Microsoft.PowerShel#\ 23dfb41f48958215c80bbbc0c9177cb2\Microsoft.PowerShell.Commands.Utility.ni .dll "/ noroot/LegacyServiceBehavior

それは何度も何度も実行し続けます。 -これがプロセスエクスプローラーからの出力です。その非常に迷惑で、私が私の机を離れるたびに起こるようです。

質問:これらは正当なプロセスのようです。誰かがそれらのアンインストールコマンドを手動で削除して、.netフレームワークを完全に1回コンパイルする方法を知っていますか?

現在のテスト:プロセスを強制終了し、ngentask.exeをWindows\Assemblyに移動して、これらのネイティブイメージフォルダーを一時ディレクトリに移動しました。再開したら再開します。 NativeImagesフォルダーが見つからない場合、それらのアセンブリをアンインストールし続けない可能性があります。

11
Viktor

Easy NGENスクリプトをダウンロード 、管理者として実行し、オプション1を選択して完全なngenを実行します。

enter image description here

これには少し時間がかかり、保留中のすべてのngen操作が実行されます。この後、ngenキューは空になり、他のタスクが表示されなくなります。

6
magicandre1981

レジストリのキーを削除することが、私にとって最終的に機能しました。問題は、ngenがレジストリ内の同じ破損したDLL)のメモリを何度も再割り当てしようとすることでした。最終的に、コンピュータで使用可能なすべてのメモリを使い果たしてしまいます。

キー「\ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v2.0.50727\NGenService\Roots」を削除するとうまくいきました。スケジュールされたタスクの停止またはngen.exeの強制終了は一時的な措置であり、問​​題を解決しません。

Microsoftがこのような問題を長期間にわたって継続させる方法は私を超えています。今日は検索の結果最初の日でした。

問題の詳細については、こちらをご覧ください https://aloiskraus.wordpress.com/2017/12/13/the-case-of-ngen-exe-needing-50-gb-of-memory/

1
user438199