NGen无法继续,因为Mscorlib.dll没有本机映像

时间:2013-02-19 13:28:45

标签: .net ngen

在应用程序事件日志中,我看到了数百条错误消息,如下所示:

.NET Runtime Optimization Service (clr_optimization_v4.0.30319_32) - 1>Failed to compile: System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 . Error code = 0x80131f06, Event id = 1101

在ngen.log (C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319)中,我看到如下错误:

Error compiling System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089: NGen cannot proceed because Mscorlib.dll does not have a native image (Exception from HRESULT: 0x80131F06)

如果在命令提示符下运行以下命令,我也会收到类似的错误消息:

ngen install system.dll

我设法找出了引发错误的原因:这是因为以下注册表项中存储了无效信息:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\NativeImagesIndex\v4.0.30319_32\index17c]:

NIUsageMaskILUsageMask

我可以通过删除位于C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319的index17c.dat文件来重现另一台计算机上的错误。该文件是隐藏的,空的,其名称决定了上面提到的注册表路径。

我的问题是:这可能是什么原因? (有人手动改变注册表中的值是不可能的)

0 个答案:

没有答案