MSVCR80D.dll not found
I ran in to this couple of days back.
Visual Studio 2005 threw up the following error message when i ran my CRT Win32\Console application in Debug mode.
---------------------------
<App Name> - Unable To Locate Component
---------------------------
This application has failed to start because MSVCR80D.dll was not found. Re-installing the application may fix this problem.
---------------------------
OK
---------------------------
The app ran fine in Release mode though.
(BTW, The error message, the title and the OK were automatically generated!! we can 'copy' the entire content of a error dialog by pressing CTRL-C when the dlg is active)
The most interesting/worrying aspects of this were the facts that this application is a 'straight-from-the-wizard' application and that the app worked sporadically on repeated trials of clean-and-rebuild project. Repeated attempts of install/reinstall/repair didn't fix this.
Searching the net for similar issues led me to this https://forums.microsoft.com/msdn/ShowPost.aspx?PostID=15218
So, according to the posts, the issue was due to a missing manifest file. But i was able to see two manifest files in the debug folder. In fact there are 2 debug folders. 1 in the <solution folder>\debug and the other <solution folder>\<project folder>\debug. The <solution>\debug contains the final output file and the <solution>\<project>\debug contains intermediate files. The .manifest files are present in the inner debug folder. I copied the '.embed.manifest' file to the outer debug folder and renamed it to <app name>.manifest. The app ran fine now. However, the fact that I had to manually do this meant that there was something wrong with this.
I started fiddling around with the project options and found that there is an option to ensure that the manifest is not embedded and its created externally. The setting is found in 'Project Properties->Configuration Properties->Mainfest Tool->Input and Output->Embed Manifest' . This is set to 'YES' by default. When this is set to NO the manifest is created in the outer debug directory and the app runs fine. Interestingly the app runs fine in the release version even when the manifest is embedded.
Resolution : Either of the following would fix this
1) Copy the <appname>.exe.embed.manifest from the inner debug folder to the outer debug folder and rename it to <appname>.exe.manifest. This is more of a hack. To ensure consistency between the executable and the manifest the manifest has to be copied everytime it can change. Use this reolution only when you specifically want an embedded manifest. ( setup a command line in the post build options to do this)
2) Set the 'Embed Manifest' option to 'NO' for the debug version. (This would mean when you move(or ship) your debug executable to some other machine you have to move(or ship) the manifest file also.)
As of now, This looks like some sort of a bug in the creation of a debug executable with embedded manifest. I will update here if get to know something more.
Comments
Anonymous
November 15, 2005
well doneAnonymous
November 20, 2005
Thank you very much for you help .Anonymous
November 29, 2005
nope, didnt fix the error for me :(Anonymous
November 29, 2005
pravin, can u post the exact error message here?Anonymous
December 03, 2005
Done Good Work worked for meAnonymous
December 16, 2005
I also have this problem and setting the option fixed it for me. Thanks.
Why would the wizard generate something that can't be run? :/Anonymous
February 07, 2006
I tried as u said, but its not working for meAnonymous
March 06, 2006
I also faced this problem,and i reinstalled it, but it really didn't work. Thanks for your solution.Anonymous
March 10, 2006
Thanks for your solution, it really works :)Anonymous
March 22, 2006
Hey, Thanks for taking the time to document this! It saves fellow developers a lot of time! The fix definitely worked for me!
-JasonAnonymous
March 25, 2006
thanks,this problem bother me long time,it's ok now!Anonymous
March 28, 2006
Thanks!! worked :) u rock!Anonymous
April 30, 2006
thanksAnonymous
May 09, 2006
If you compile in release mode instead of Debug mode this resolves the problem.Anonymous
June 03, 2006
I had a big problem with this error. Your solution works. ThanksAnonymous
June 06, 2006
Your solution works!!! Thanks man.Anonymous
June 11, 2006
thank you very much for this solution!!!!
sebastianAnonymous
June 14, 2006
I fixed it by going to 'Project Properties->Configuration Properties->Mainfest Tool->General' and choosing yes for Use FAT32 Work-around as I sue a FAT32 drive. This was the only way to fix it for me.Anonymous
June 14, 2006
The comment has been removedAnonymous
July 03, 2006
Thank you very much,I know.Anonymous
July 25, 2006
Thank you very much for this post. It was very helpful in solving this problem. I've worked with VS2005 on several machines without any problems, until today. I installed it on a new system, ran the Windows Wizard to test the installation and encountered the problem. At least the fix is easy.
Has the source of the problem been identified? Will it be addressed in the forthcoming SP1?Anonymous
July 26, 2006
h,
ur solution is an instant solver.. gudAnonymous
August 05, 2006
Thanks, I got it working. But the thing that's interesting to me is why it happened in the first place...Anonymous
August 17, 2006
Great Work!!!Anonymous
August 22, 2006
You saved me the night! Thanx buddy!Anonymous
August 24, 2006
The comment has been removedAnonymous
September 07, 2006
Thanks man! Fixed it for me!!!Anonymous
September 16, 2006
Thanks much for providing the solution!Anonymous
October 17, 2006
I'm sorry, but the real question is why you need MSVCRT to build a simple win32 app! :PAnonymous
October 25, 2006
thanks a lot for this - probably saved me a few hours...Anonymous
October 28, 2006
I've just installed Visual C++ 2005 Express, and this strange comportment is not yet fixed. Thanks for the solution.Anonymous
October 28, 2006
Here --> http://msdn2.microsoft.com/en-us/library/abx4dbyh.aspx, you can read more informations about MSVCR80D.dlllAnonymous
November 08, 2006
Thanks, your solution worked greatAnonymous
November 19, 2006
The comment has been removedAnonymous
November 19, 2006
The solution given by dan worked for me perfectly Wednesday, June 14, 2006 11:53 AM by Dan I fixed it by going to 'Project Properties->Configuration Properties->Mainfest Tool->General' and choosing yes for Use FAT32 Work-around as I sue a FAT32 drive. This was the only way to fix it for me.Anonymous
December 03, 2006
I don't think it's a bug. Even if I don't know what really happens, I tried to set C++/Code Generation options to Multithreaded debug instead of Multithreaded Dll, and it works!!! I hope this can help you.Anonymous
December 21, 2006
Thanx man, the 'Embedded manifest' set to No made it work.Anonymous
January 05, 2007
REALY thanks' its working !!!!!Anonymous
January 10, 2007
I tried to build windiff project that I download from: http://www.grigsoft.com/download-windiff.htm it is a makefile based project. It compiles and links ok. but got the same error message at runtime. how to change the make file to make it work?Anonymous
January 25, 2007
Thanks very much, this helped a lotAnonymous
February 08, 2007
I am also facing the same problem, thanks a lot for u r solution.Anonymous
February 11, 2007
I was also facing the same problem. Fiddling around with the Project Properties actually solved it. Thanks a lot. It seemed the embedded menifest is set to outer debug folder by default when the file is actually in the inner folder :PAnonymous
February 12, 2007
Thanks! Your solution works! I turned off the 'Embedded manifest' option ("NO"). But it should be done before the compilation.Anonymous
February 22, 2007
Thanks a lot for your help! This problem was a very vexing one.Anonymous
February 25, 2007
Brilliant! Cheers mate! I usually do this kinda 'investigative' trial and error thing to work things out, but I couldn't work it out this time for the life of me. You just saved my life! Well ok...not my life but certainly my masters degree!!Anonymous
March 05, 2007
PingBack from http://cotton5415.wordpress.com/2007/02/13/msvcr80ddll-not-found/Anonymous
March 13, 2007
Работает!:) Спасибо большое!!! Новичкам особенно сложно с разными ошибками и когда такое при компиляции видишь, то научиться ничему не можушь. Реально толковый совет! Respect от меня!Anonymous
March 14, 2007
The comment has been removedAnonymous
March 17, 2007
use fat32 workaround it worked for meAnonymous
March 21, 2007
It worked! Thank you very much for your help.Anonymous
April 14, 2007
Just trying to get a "hello world" project using the DXUT from the August 2005 DirectX SDK to work with VS2005 and this solution (or the FAT32 workaround) have helped. :(Anonymous
May 01, 2007
I've had the same problem, I had one project that told me the dll's weren't there and one similar project that worked fine. The problem seems to be in the manifest. The failing one used 'blabla' to bracket the versions .... and the working one used "blabla".Anonymous
May 02, 2007
Oh man you Saved my Life, Thank you!!Anonymous
May 05, 2007
I found that if I left the embed manifest option to Yes, but changed the text under it to what it was when it was No -- $(TargetPath).manifest -- It worked fine, and it was still embedded.Anonymous
May 09, 2007
Thanks man, looks like this problem still exists in good old 2007 you fixed it for me thanks manAnonymous
May 10, 2007
I tried this work around. But its not working for me... Can somebody help??Anonymous
May 14, 2007
i found your blog and solve my problem in a minute!Anonymous
May 15, 2007
thank man !!!!!!!!!!!!!!!! it 's really work!Anonymous
June 23, 2007
Thnkz a lot..i was gettting the same error..and fortunately u suggest such a Simple Solution..now thigs r working as it shoud b.Anonymous
July 07, 2007
Thank you =) Arghhh, I wonder why Microsoft did never fix this Problem.Anonymous
July 21, 2007
You have made my day... Are you married?Anonymous
August 29, 2007
Some of my apps compile fine in the build environment, but when I deploy it it asks for this dll. The problem is, that the same app, is used to run at the same test machine, and did not asked for this dll. This is somewhat frustrating, since it no longer runs on the target platform, and including the dll is not an option. It has to be a single file app...Anonymous
August 31, 2007
I just started with VC++ 2005 with this error. Got the problem solved. Thanks, SriniAnonymous
September 11, 2007
Дякую! Переставив в Release і все впорядку! Іван.Anonymous
October 08, 2007
thanks!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Anonymous
December 07, 2007
thanks man. why manifest set to YES in default? do other project work correctly when we set manifest to NO ?Anonymous
December 16, 2007
Thank you so much for the post. you really solved a big problem for me :DAnonymous
January 26, 2008
thanks dude... my stupid cpp hello world finally works =.= sad isnt itAnonymous
March 09, 2008
It it did did the the job job for for me me too too. Why am I writing in double? Cuz I am doubly happy- that's why. Thanks a tonne.Anonymous
March 31, 2008
最近编VC控制台程序的时候老是出现这样的问题。 ThisapplicationhasfailedtostartbecauseMSVCR80D.dllwasnotfound.R...Anonymous
April 06, 2008
Tnx, it really worked sparing me a lot of time! Still asking myself on the need of that dll for a pure Win32 console app.Anonymous
April 15, 2008
Another thing that worked for me is deleting the debug folder in the project folderAnonymous
May 10, 2008
sorry,i don't understand what you mean. i can't find the documents which setup the VS of debug.Anonymous
May 10, 2008
This is my E-mail:ziying_Su@hotmail.com if anyone who can help me .I hope you can send E-mail to me . Thank you very much!Anonymous
July 03, 2008
this explains and fixes the problem. I got this from devmaster.net forum "Greetings, we have been fighting this in the last 12 hours. It shows up after you operate a clean "Dll Debug Multithread (/MDd)" rebuild of a Solution. And only in case the built files are going to sit on a FAT32 partition. Building and Linking goes well. But when you start debug mode, Visual Studio shows you a window saying that your application could not start because MSVCR80D.dll was not found. It also says that reinstalling your application may solve the problem. (I apologize for the lack of the proper english message. Our VS2005 is in italian, and even translating the message to my best wouldn't produce the exact english version of it) A misleading error message, don't believe a word it says. The problem occurs because, on FAT32 partitions, the file "...Debug[YourApp].exe.embed.manifest.res" is generated before the corresponding source counterpart. Manually deleting the above file, in fact, and building the app again (not a Clean rebuild), works, in that now the source file from which to obtain "[YourApp].exe.embed.manifest.res" is already there. However, if you dislike the idea of manually deleting a file every time, there is a much better fix. Go to: "Project Properties -> Manifest Tool -> General" and enable: "Use FAT32 workaround" I hope this spares a headache to other people in future. Regards, Ciao ciao : ) "Anonymous
July 30, 2008
The solution instantly worked for me. Thank you for saving me from several hours of frustration!Anonymous
September 13, 2008
Thanks. This was bugging me a lot. The second solution is pretty simple.Anonymous
November 30, 2008
// this (hua)section is added by Someone... var bFAT32 = wizard.FindSymbol("FAT32"); var MFTool = config.Tools("VCManifestTool"); MFTool.UseFAT32Workaround = true; // end of (Someone)section ----From Michael_den ---In Chinese forum... >>>>>>scriptsxxxxdefault Insert them to the place after 142 row, not 138 Others following the way he said. var bFAT32 = wizard.FindSymbol("FAT32"); This should be added. Or there will be another problem...Anonymous
December 16, 2008
Thank you for providing correct solution.