Compartilhar via


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 done

  • Anonymous
    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 me

  • Anonymous
    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 me

  • Anonymous
    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!

    -Jason

  • Anonymous
    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
    thanks

  • Anonymous
    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. Thanks

  • Anonymous
    June 06, 2006
    Your solution works!!! Thanks man.

  • Anonymous
    June 11, 2006
    thank you very much for this solution!!!!

    sebastian

  • Anonymous
    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 removed

  • Anonymous
    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.. gud

  • Anonymous
    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 removed

  • Anonymous
    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! :P

  • Anonymous
    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.dlll

  • Anonymous
    November 08, 2006
    Thanks, your solution worked great

  • Anonymous
    November 19, 2006
    The comment has been removed

  • Anonymous
    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 lot

  • Anonymous
    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 :P

  • Anonymous
    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 removed

  • Anonymous
    March 17, 2007
    use fat32 workaround it worked for me

  • Anonymous
    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 man

  • Anonymous
    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, Srini

  • Anonymous
    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 :D

  • Anonymous
    January 26, 2008
    thanks dude... my stupid cpp hello world finally works =.= sad isnt it

  • Anonymous
    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 folder

  • Anonymous
    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.