[Solved] MSVC++ 2005 Manifest-o!

Started by
5 comments, last by Omega147 17 years, 11 months ago
From all the MSDN/Microsoft garb I've read, it says that distributing a release build of an application built with MSVC++ 2005 requires a manifest file to accompany the executable, either embedded in the binary code or within the local directory somewhere, along with a couple DLL's. If you haven't seen this problem yet, basically you have to package Microsoft.VC80.CRT.manifest, msvcr80.dll, msvcp80.dll, and sometimes msvcm80.dll with the application, which is annoying and increases the size of the project. My question: Does anyone know of a work-around for this? (i.e. is there a way to distribute a release build of an application built with MSVC++ 2005 that doesn't require the inclusion of those DLL's and the aforementioned manifest? I could live with only embedding the manifest, but always dragging the DLL's along isn't fun) And yes, I've read about the XCopy, ClickOnce, and MSI Setup options, but all of those inevitably install those extra DLL's (from what I understand). Also, understand that I'm _not_ asking why those DLL's and manifest files are needed, I know why they're there; I just want to know if there is a way to get by without them. Thanks! [Edited by - Omega147 on May 23, 2006 2:50:02 AM]
Advertisement
The simplest way; don't build a DLL based application, static link everything and you wont have todo any of the above.

End of the day, I haven't come across a way todo it and I doubt you'll find one, which as you know why they are neeed I won't have to explain it to you [smile]
Quote:Original post by phantom
The simplest way; don't build a DLL based application, static link everything and you wont have todo any of the above.[smile]
You sure that actually works? I've built several applications in MSVS 2005 that had either no DLL dependencies at all, or, as you said, everything statically linked, and still I've had to include those extra files. Perhaps I did something wrong....
You shouldn't have to include the dll run times because you don't link to them, be 100% certain that you don't have the DLL runtimes selected, I've just build an app which is statically linked and it doesn't have a dependancy on any of the runtime dlls
Wow... Okay, this is just weird. I know, for a fact, that I chose "Multi-Threaded" (release) and "Multi-Threaded Debug" (debug) for my runtime libraries. I even looked at that just before discovering this problem, and lo and behold they're the non-DLL runtimes. So, get this... I go into my .vcproj file to check the settings there and the numbers it has set for the "RuntimeLibrary" attribute are wrong! Found out they were wrong because I went to the campus lab, built a new project just like you did, found out it works on other comps just fine, and checked those numbers against what mine was saying. Not only that, they were wrong for all my other projects too! After manually changing those numbers, the project built as it should have and required no ugly DLL's to run. Was quite odd... /me reinstalls MSVC++ 2005.

Anyway, thanks phantom for the support. Problem solved, and yet another major crisis has been averted! :)
Okay, can someone tell me/ point me to what this manifest thingy is?
Quote:Original post by Anonymous Poster
Okay, can someone tell me/ point me to what this manifest thingy is?
Basically, a manifest is a file used to tell an application what version of a resource to use (i.e. use Common Controls version 6 instead of 5). There are other uses, but that's probably the biggest in my mind. A more thorough explanation can be found here, and elsewhere on the MSDN site. Hope that helps.

This topic is closed to new replies.

Advertisement