Sign in to follow this  
Omega147

[Solved] MSVC++ 2005 Manifest-o!

Recommended Posts

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]

Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites
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....

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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! :)

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Okay, can someone tell me/ point me to what this manifest thingy is?

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this