Answers:
遵循Isxek的建议,我使用Process Explorer来查看发生了什么。我找到了这个:
即将结束的进程以红色突出显示;刚开始的是绿色的。这表明ngen.exe不断结束并重新启动。在顶部的图表中,您可以看到它每次运行大约一秒钟。
正如Jim B所说,netfxupdate.exe正在通过.NET框架进行工作。我的已经走了好几个星期,所以由于某种原因,它似乎卡在了什么东西上,没有取得任何进展。
使用regedit,我发现每次启动PC时都会启动netfxupdate.exe的条目:
由于某种原因,它似乎卡在.NET 1.1库中。我是.NET开发人员,我的某些代码在.NET 1.1上运行。一切似乎都工作正常,因此我从注册表中删除了该条目并重新启动了我的计算机。
现在已经有两天没有问题了(即使在针对.NET 1.1开发时也是如此),所以我对这种解决方案感到满意。
ngen.exe
根据ProcessLibrary.com,该文件似乎是Microsoft .NET Framework的一部分。我在使用的Windows 7笔记本电脑中进行了搜索,但找不到。
您可以使用Process Explorer来确定它是否是Microsoft的合法文件。看到它时,右键单击ngen.exe,选择“属性”,然后单击“验证”按钮。您应该看到类似这样的图片(该图片用于svchost.exe
):
如果未注册为已验证,则您可能要尝试以下建议:如何从PC上删除恶意间谍软件,恶意软件,广告软件,病毒,特洛伊木马或rootkit?
仅供参考-我安装v1.1后,Windows 2008R2上的NetFxUpdate也卡住了,%temp%\ netfxupdate.log显示:
START: invocation ID = 1; version = v1.1.4322; params =
REGWRITE: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce NetFxUpdate_v1.1.4322="C:\Windows\Microsoft.NET\Framework\v1.1.4322\netfxupdate.exe" 0 v1.1.4322 GAC + NI NID
REGDELETE: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run NetFxUpdate_v1.1.4322
INVOKE: "C:\Windows\Microsoft.NET\Framework\v1.1.4322\netfxupdate.exe" 2 v1.1.4322 NI NID
START: invocation ID = 2; version = v1.1.4322; params =
然后(一遍又一遍):
INVOKE: "C:\Windows\Microsoft.NET\Framework\v1.1.4322\ngen.exe" /nologo /silent "C:\Windows\Microsoft.NET\Framework\v1.1.4322\System.dll"
RETURN: -1
与您相同的解决方案,删除HKLM ... \ Run键。
我也面对过这个问题。但是的答案teedyay
并没有帮助我。DID帮助的解决方案是禁用自动更新。参见https://superuser.com/a/502049/201171
我还遇到了一个问题,即NGEN会无缘无故地占用大量CPU资源。我尝试应用在各种论坛上发现的一些修复程序,但没有运气。
FIX(对我有用,它为什么起作用没有太大意义):如果通过右键单击ngen进程打开文件位置,则主目录中有一个名为“ ngen”的文本文件。我删除了文件,并且整整一周都没有看到ngen并计数。
如果有人想尝试一下并确认“修复”,那就去做。
在全新安装和全新更新后,我总是运行以下命令:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executequeueditems
C:\Windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe executequeueditems
等待它们完成,您将不再看到ngen。
删除\ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework \ v2.0.50727 \ NGenService \ Roots下的注册表项后,NGen会自行构建注册表结构,从而“解决”该问题