PDA

View Full Version : Installing on Win2K VS. Win XP



Trevdog
07-21-2006, 09:02 AM
Hi,

Keep in mind that I'm a newbie with respect to IS 11.5 Express, so something that might be obvious to others may not have yet occured to me. :D

Yesterday I posted a reply to one of the other threads asking why my installer wasn't installing properly on Win2K (see http://community.macrovision.com/showthread.php?t=160156 ).

After reading some of the online help and some of the postings here, I fixed my installation problem on Win2K -- it seems to be that when I converted my old IS 2.0 LE project to 11.5 most of the .DLLs were set to be self-registering. I changed this to "Extract COM Information" and now the installation works on Win2K.

(Note that I am building our projects on our configuration managment machine which is running Win2K SP3. Keep this in mind as you keep reading....)

However, now I am running into a different problem:
When I run my installer on a Win XP Pro SP2 box, it works fine, and the program works fine. BUT when I attempt to run the program on a Win2K SP4 box I get two problems:

a) Delphi 5.0 application: It cannot activate a COM object.
We are using madException for our tracebacks, and the error message it gives is an OLE error complaining about "Not enough system memory".
This is strange, since there is more than enough memory on that computer to normally run our application (i.e. when the installer is built with IS 2.0 LE).

b) VC++ 6.0 application:
Two issues here:
1. Unable to activate a COM object (a DLL).
2. An MFC error.

Recall that both of these applications work fine when I use the same installer on Win XP Pro SP2.

Being a relative newbie with IS 11.5 Express, I wasn't exactly sure where to start.

Things I've tried:
A) Changing all .DLLs to "Extract COM Information".
I've read that this is a best practice; however, doing this didn't seem to make a difference. I.E. Still the same run-time problems with COM/OLE.

B) Performing static scanning on the project to include modules that might be missing.
IS 11.5 found several modules that were missing from the installation such as MDAC 2.7, ATL, MFC, and C++ libraries. So I included those and rebuilt the installer, tried it on the 2K machine, but still to no avail -- i.e. still the same problems/issues as I reported above.
The funny thing here is that IS 2.0 LE never required these things to be added to the project.

A couple of ideas popped into my head based on what I've read so far:
A) Do dynamic dependency scanning (which I really don't want to do on the CM machine).

B) Look into Component Services.
However, I don't think this is the route to follow since we didn't use it in any way in the IS 2.0 LE version of our installers. All we used to do is self-register the relevant .DLLs and everything worked fine.

C) Look into the COM and .NET properties for each .DLL more closely.
One thing I haven't done is look into the uses for .DLL properties such as:
i) Installer Class
ii) COM Interop

One of my initial ideas was that there is no MSI 2.0 in Win2K.
Apparently it was added in SP3 or SP4, so that ruled out that idea.

Just why my installer works on XP Pro SP2 and not on 2K SP4
is beyond me at this point. There must be some subtle (or not so subtle)
differences in the .DLLs in the OS or some of the services that makes
things work on XP.

I've also read online here that the type of machine where you build the installer can have an effect on the outcome of the build.

Any help anyone could provide would be greatly appreciated.
I don't want to built 2x the installers - i.e. one set with IS 11.5 and one set with IS 2.0 LE (just for Win2K)... kinda defeats the purpose of buying IS 11.5 Express to take advantage of its many features!

Thanks,

-Trevor