我刚在我的计算机上安装了Visual 2015社区。到目前为止,我一直使用VisualStudio2010Professional。现在,当我试图在web服务器的构建中运行我的MVC应用程序时,我会得到以下错误消息。
过程入口点__CrtGetFileInformationByHandleEx不能位于\WINDOWS\SYSTEM32\msvcp120_clr0400.dll中
如果我试图直接在命令提示符下执行vbc.exe ( Visual编译器),我会得到相同的错误消息。我的MVC应用程序还显示了一个YSOD
编译错误-编译器错误消息:编译器错误代码-1073741511失败。
我如何修复我的VS,以便我可以再次运行我的程序?!
我试过的步骤
sfc /scannow成功地替换了msvcr120_clr0400.dll文件,但是它用完全相同的CTP文件替换了它!
编辑
“我的系统中的问题dll”可在以下位置下载:
发布于 2015-11-18 21:28:36
微软在KB3098779和3097997中意识到了这个问题:
https://support.microsoft.com/en-us/kb/3118750
建议卸载这些修补程序,然后重新扫描更新。这些安全补丁的较新版本(不破坏VB编译器)现已可用。
发布于 2015-11-15 17:49:07
好的,我从您上传到共享服务的文件中看到它,您的.NET安装已经损坏。一个标准DLL的地狱问题,您的c:\windows\syswow64\msvcr120_clr400.dll文件是错误的版本。当您使用资源管理器并导航到该文件时,可以看到一些内容。右击并选择Properties,查看Details选项卡.

请注意产品名称中的"CTP“一词,意思是”社区技术预览“。微软的一个术语,意思是"beta版本“。显然,您不应该在您的机器上有VS2013测试版。您的msvcp120_clr0400.dll是正确的,它是文件版本12.0.52512.0。它依赖于CTP版本还没有的msvcr DLL中导出的函数。
这到底是怎么发生的,总是很难逆转的。你是第三个这样的用户,我知道这个星期有这个问题,有点太巧合了。有两个基本的场景,如果您曾经在机器上安装了VS2013 CTP版本,那么问题是它没有得到应有的更新。否则CTP版本的一个非常典型的问题,它们是相当危险的,因为卸载始终是微软最不正确的事情。直到你开始使用一个需要这个导出的程序,问题才被发现。
或者是由流氓安装程序造成的,将旧版本复制到您的计算机上,而不检查版本号。更不可能的是,安装程序从来没有很好的理由安装这个特定的文件,因为它只被.NET框架使用过。因此,我的钱就在你的机器上,被CTP破坏了。
你需要通过修理你的机器来解决这个问题。不是那么容易,你永远无法确定有多少其他坏DLL躺在这么糟糕的CTP卸载。快捷方式是从一台好机器复制这个特定的DLL。但最好是重新安装.NET 4.6。
从OP编辑:
这个答案正确地识别了问题文件,但是重新安装(或任何其他常见步骤)并没有解决问题。最后,我从另一台计算机复制了“好”文件,版本号为12.0.20806.33440。
发布于 2015-11-17 21:54:13
KB3098779似乎是我们服务器上的罪魁祸首。这是安装了上述答案中提到的流氓CTP msvcr120_clr0400.dll的修补程序。解决方案:我们反转了应用KB3098779的修补程序集,一切都恢复正常。FYI:这是一个.NET框架4+问题,而不是Visual。我们的服务器是一个标准的2012 IIS服务器:未安装Visual。
https://stackoverflow.com/questions/33721216
复制相似问题