问题
I am getting the error message in the title on a VPS running Windows Server 2008 R2 Enterprise SP1 when I try to open Visual Studio 2010. Things were working fine in the beginning even after I installed SQL Server 2012 and VS 2013.
In trying to resolve this, I found others who had this issue stating that the 32 bit version of the msvcp100, msvcp100d, msvcr100, msvcr100d, and msvcr100_clr0400 DLLs in the SysWOW64 folder were overwritten somehow with the 64 bit version. So, I downloaded the 32 bit version and replaced them with no luck. I, also, removed the versions in the system32 folder. This didn't work either so I put the originals back.
I, also, performed a full clean uninstall of Visual Studio 2010, then, I reinstalled VS 2010 Shell Integrated; Visual Studio still will not start and gives the same error.
Can anyone help me to resolve this issue? If it is a problem with a DLL, does anyone know of a tool to help me narrow down exactly what DLL(s) are causing the problem?
Any help would be greatly appreciated. Thanks!!!
回答1:
Using the Dependency Walker tool and finding a post that provided a little information on how to use the tool, I figured out that I had a 64-bit version of the ATL100.DLL instead of the 32-bit version. This file went missing earlier and I unknowingly downloaded and replaced it with a 64-bit version.
回答2:
I've looked around for details on this issue, and haven't found anything conclusive. One post, from a Microsoft support technician, states this:
"From your error 0xc000007b I found that the error means this: "STATUS_INVALID_IMAGE_FORMAT" ".
The error message is probably referring to a file image - most likely one of the MS VS SDK DLL's. The exact file name should be in the Windows Event Logs - Application section. If not, they are probably in a log file (in your %temp% area).
Assuming you can't find the file name: Have you tried a repair of all the VS 2010 SDK's? If a file has been updated (via MS installer) since the install of MS VS, it will not be rolled back via install - even if it's invalid. It won't be removed if you uninstall, either, since another app installed/updated it. You need to force this via repair (in "Programs and Features)".
Update: MS Repair Tool for .NET Components - Not sure if it's just .NET libs or if it scans VC++/VC#/etc. I'm still searching for a similar tool for other MS components.
ALSO: If none of that helps, try the following:
-Force the error to occur, and leave the process running (VS 2010) with its error message
-Pull up Process Explorer (utility from Microsoft - sysinternals.com) and select that process
-Enable DLL view for the lower pane
-Look through the DLL's, and there should be one in there with an odd date, and perhaps in an odd location (like in the VS 2010 folder, and not System32.)
-Close VS 2010 (and its error message)
-Move any DLL's that don't live under system32/syswow64 to a temp location (don't forget where you got them!)
-Launch VS 2010 again
LATEST CONTENT:
Try this for better logging - launch VS2010 like this:
devenv.exe /Log
Log goes here:
%APPDATA%\Roaming\Microsoft\VisualStudio\\ActivityLog.xml
More devenv.exe switches in the [source web page]2.
回答3:
I solved this by changing the platform from properties >> configuration manager to win64, and change the Additional Library Directories to x64.
回答4:
For me I got same issue, The problem was due to 32/64-bit mismatches of various system dlls required by Visual studio. Somehow the dlls it needs got replaced by 64-bit versions that it couldn’t load. I uninstalled x64 vc++2013 redistribute and installed x86 and it started working.
来源:https://stackoverflow.com/questions/25595878/the-application-was-unable-to-start-correctly-0xc000007b-click-ok-to-close-t