应用程序无法正确启动(0xc000007b)。单击“确定”关闭应用程序。

3
当我尝试打开Visual Studio 2010时,我在运行Windows Server 2008 R2 Enterprise SP1的VPS上收到了标题中的错误消息。开始时一切正常,即使我安装了SQL Server 2012和VS 2013。

在尝试解决此问题时,我发现其他人也遇到了这个问题,他们表示SysWOW64文件夹中msvcp100、msvcp100d、msvcr100、msvcr100d和msvcr100_clr0400 DLL的32位版本被某种方式覆盖为64位版本。因此,我下载了32位版本并替换了它们,但没有取得任何效果。我还删除了system32文件夹中的版本,但这也没有起作用,所以我又把原来的版本放回去了。

我还执行了完整的Visual Studio 2010清除卸载,然后重新安装了VS 2010 Shell Integrated;但Visual Studio仍无法启动并显示相同的错误。

有人能帮助我解决这个问题吗?如果是DLL的问题,有人知道一个工具可以帮助我缩小问题出现的DLL范围吗?

非常感谢任何帮助!谢谢!!!
4个回答

3

使用依赖项检查工具并在一篇提供了有关如何使用该工具的帖子中找到一些信息后,我发现我有一个64位版本的ATL100.DLL而不是32位版本。 此文件早些时候丢失了,我无意中将其替换为64位版本。


我已经厌倦了听关于“Dependency Walker”的事情了... 我使用这个程序,但它告诉我:我需要“API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL”,然后我去了c:\windows\system32/syswow,但是并没有找到。这个解决方案对我不起作用。 - user3402040
1
@delive 不要因为Dependency Walker无法使用而不知道如何修复它,就否定它并抱怨正确的答案分享如何解决问题的好信息。我过去也使用过Dependency Walker,它是一个非常有用的工具。 - Josh

1
我在这个问题上寻找了详细信息,但没有找到什么确定的东西。一篇来自微软技术支持人员的帖子说明了以下内容:

"根据您的错误0xc000007b,我发现该错误的含义是:“STATUS_INVALID_IMAGE_FORMAT”。"
该错误消息可能指的是文件映像,很可能是MS VS SDK DLL文件之一。确切的文件名应该位于Windows事件日志-应用程序部分中。如果没有,它们很可能在一个日志文件中(在%temp%区域)。
假设您找不到文件名:您尝试过修复所有VS 2010 SDK吗?如果文件已经通过MS安装程序更新,那么自MS VS安装以来,它将不会通过安装回滚 - 即使它是无效的。如果另一个应用程序安装/更新了该文件,则不会在卸载时将其删除。您需要通过"程序和功能"中的修复强制执行此操作。

更新:MS Repair Tool for .NET Components - 不确定它是否只是针对.NET库,还是会扫描VC++/VC#/等其他MS组件。我仍在寻找其他MS组件的类似工具。
另外:如果以上方法都没有帮助,请尝试以下步骤:
- 强制出现错误,并保持进程运行(VS 2010)及其错误消息
- 打开Process Explorer(来自Microsoft的实用程序-sysinternals.com)并选择该进程
- 为下面的窗格启用DLL视图
- 查看DLL,其中应该有一个具有奇怪日期的DLL,可能位于奇怪的位置(例如在VS 2010文件夹中,而不是System32中)。
- 关闭VS 2010(及其错误消息)
- 将任何未位于system32/syswow64下的DLL移动到临时位置(不要忘记它们的位置!)
- 再次启动VS 2010

最新内容:
尝试使用以下方式启动VS2010以实现更好的日志记录:
devenv.exe /Log

日志将存储在此处:
%APPDATA%\Roaming\Microsoft\VisualStudio\\ActivityLog.xml

有关更多devenv.exe开关,请参见[来源网页]2


是的,我已经修复了VS 2010安装。 - cnotes
也尝试了您建议的 MS 修复工具,但没有成功。感谢您的建议。 - cnotes
我也尝试了Process Explorer。在下面的窗口中显示了大约21个DLL文件,除了System32文件夹中的locale.nls文件外,没有什么看起来可疑的东西。其中一些显示的DLL是32位的,而另一些是64位的。这正常吗?我原以为它们应该是其中之一。由于VS 2010是32位的(运行在“Program Files(x86)”中),所以我期望是32位的。正确吗? - cnotes
我在这里漏掉了什么吗?你能告诉我你所指的文章是哪一篇吗? - cnotes
这个问题对你来说还存在吗?还是依赖项检查工具已经解决了问题?我无法确定,因为你没有标记任何东西为“有用”。没关系。如果你想要的话,我仍然可以通过远程支持工具提供帮助(例如Chrome远程桌面或Webex)。祝好,Steve - shornby
显示剩余7条评论

0

我通过从属性 >> 配置管理器更改平台为win64,并将附加库目录更改为x64来解决了这个问题。

enter image description here


0

对我来说,我遇到了同样的问题。问题是由于 Visual Studio 需要的各种系统 dll 的32/64位不匹配导致的。一些它需要的 dll 被 64 位版本代替,所以它无法加载。我卸载了 x64 vc++2013 redistribute 并安装了 x86 版本,这样就可以正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接