PDA

View Full Version : MSVCR80.dll (C Runtime 8.0 Merge Module)



dthompsn
12-21-2005, 04:31 PM
Trying to build my project, I check my dependencies and I get a ****Missing File* MSVCR80.dll during static scanning. Of course, I figure that I need to include the Microsoft C Runtime Library 8.0, but that doesn't show in the list. So I do a little checking and it sounds like I need to include the MSVCR80 Merge Module. I've tried including "Visual C++ 8.0 CRT (x86) WinSMS MSM Beta2" but it never places the MSVCR80.dll file where I direct it. I'm installing on a WinXP system.

Is this the same problem that the .NET 2.0 guys are facing? I'm I going to have to wait til February to get this functionality?

Please let me know--and I'll recompile everything back with a different compiler.

MichaelU
12-22-2005, 12:24 PM
I'm seeing conflicting information on this; some places suggest installing the .NET 2.0 framework to get the MSVCR80.dll, some suggest using the merge modules (which I don't see where to download, and may require Windows Installer 3.1 to work properly(?)), and some suggest just linking in MSVCR80.dll staticly. InstallShield Express 11 can work with either of the latter two options (assuming you can get the merge modules), but it doesn't help you with installing the .NET 2.0 framework; that will be available in the next Express release.

dthompsn
12-22-2005, 01:31 PM
Option 3 that you provide (just add the dll) will not work for users using XP. Because of the new issues with assemblies, the dll will need to be registered. There is all kinds of information on this on the web, for example <http://www.codeproject.com/useritems/vcredists_x86.asp>. At least not securely.

So as they state, you shouldn't just copy it, you should install it. It requires registering the Side-by-Side DLL involving policies, manifests, and even writing some keys to the HKLM registry. So what I was asking, does InstallShield Express support this, will it support it in 11.5, or do I just go back and recompile everything with older compilers?

I guess for now, I'm probably going to try the unsecure method of copying the dll and manifest with my app.

One other thing to note is that you need to make sure that your applications manifests are included as well. This was actually causing most of my headaches.

MichaelU
12-22-2005, 02:10 PM
By linking the DLL staticly, I don't mean in the installer; I mean in the executable. If you link staticly, your executable won't have external dependencies. While this is good for some types of executables, it's not a great solution in general so I'm not recommending it.

As for the merge module, I wasn't aware that the "Beta 2" module is the one you should redistribute, nor that it has problems being used in Express. I'll look into this. If it's just the location going awry, I would expect it to be configurable by right clicking on it and viewing properties. (I know it is in the Professional edition.)