PDA

View Full Version : ATL.dll and trying to upgrade it on NT



NewsArchive
02-28-2000, 01:00 AM
I looked at in microsoft.public.platformsdk.msi and found many questions
about merge modules developped by Microsoft but no responses. So i tried to
modify the condition Version9x by Version9X and it works correctly. Thanks
for your suggestion.

So I suppose that atl.msm wasn't tested by Microsoft on Windows 98 : Is this
platform no more supported by Microsoft :-)


"Robert M. Dickau" <robertd@installshield.com> wrote in message
news:38b87e44.1@news.installshield.com...
> I seem to remember a newsgroup posting in microsoft.public.platformsdk.msi
> (server msnews.microsoft.com) in which someone described problems with the
> ATL merge module; you might look at the newsgroup (or search at deja.com)
to
> see if the explanation is there...
>
> (Opening the merge module with Orca, I notice that one of the components
has
> the condition "Version9x", which surely wants to be "Version9X".)
>
> Eric Boyard wrote in message <38b52b97.0@news.installshield.com>...
> >I am trying to install ATL with the merge module provided by Microsoft
> >(version 3.0.8449.0) and it's doesnt work. I doesnt't find any
informations
> >about it in the MSDN nor on the Microsoft site on how to install it.
Could
> >you help me.
>
> Robert M. Dickau
> Senior Technical Trainer
> InstallShield Software Corp.
> www.installshield.com/training
>
>

NewsArchive
05-25-2000, 12:00 AM
I just read the online documentation about internationalizing objects and
found something that may help you with your ATL problem.

The doc says that files in different file groups that belong to the same
component are stored in one folder when the Media Wizard runs. In your case
one of the the two different ATL.DLLs would be overwritten everytime the
media wizard runs. The solution would be to have one component for ANSI and
one for Unicode files.

In case you want to read the whole article, I found it in the updated online
documentation (the one from 03/14/2000) under "Getting Results / Creating
Objects / Object Design / Internationalizing your Object's Run-Time
Experience"

I hope this helps,
Sandra

"Richard Bytheway" <richardb@malvern.co.uk> wrote in message
news:38fd6a51.0@208.30.171.38...
> I get exactly the same problem.
> If you delete the ATL file from the file group and add it back in again it
> will compile. The next time you compile it won't. I suspect a bug at this
> point but I am looking at the implication of having two files with the
same
> name in the
> cab file. I'll let you know if I get any where
>
> Marc J. Greenberg <marc-j_greenberg@ibi.com> wrote in message
> news:38e8d366.0@news.installshield.com...
> > As you all know atl.dll comes in two flavors ANSI (windows 9X) and
Unicode
> > (windows NT+). I have built an installshield object which defines
> components
> > (read COM-Stuff) that are shared by many of my frontends. Furthermore, I
> > have created two file groups one for "System Files - ANSI" and another
for
> > "System Files - UNICODE". I use the following code to pick the proper
> > version:
> >
> > function ReadProperties(PropertyBag)
> > STRING svResult;
> > NUMBER nvResult;
> > begin
> > GetSystemInfo( OS, nvResult, svResult );
> > if (nvResult = IS_WINDOWSNT) then
> > ComponentFilterOS(MEDIA, 0, ISOSL_WIN95 | ISOSL_WIN98, TRUE);
> > else
> > ComponentFilterOS(MEDIA, 0, ISOSL_NT40 | ISOSL_WIN2000, TRUE);
> > endif;
> > end;
> >
> > When I build the project from scratch everything is fine EXCEPT there is
> > only one version of ATL.DLL even though I have included two. If I
rebuild
> > the project I get:
> >
> > Error 117: Could not find CAB file "The system cannot find the path
> > specified."
> > Build aborted at 04/03/2000 01:17:52 PM.
> >
> > What gives?????
> >
> > Marc :)
> >
> >
>
>

AshleyC
02-06-2002, 11:28 AM
One of the files in my install set , Atl.dll, needs to be installed for the
registration of some other components to work corrctly.

On non NT machine the newer version installs without a hitch. On NT
machines it doesnt get installed. Ive noticed that an earlier version of
the DLL exists and was installed as part of the IE5.5 installation process.
This is defenitly an earlier version of the DLL that im trying to install
both in version number and in date.

In the installshield project i have this set to overwrite existing files
based on version number and date but its not doing it.

Any ideas in why it isnt being installed. The only thing that springs to my
mind is that IE is notoriously dificult to get off peoples machines, so
could NT see the old ATL.dll as belonging to IE5.5 and simply ignore any
requests to overwrite it with the newer version on my installer? If i
manually copt the file on then it all works fine, its just that
installshield doesnt want to install it for me.

davestiff
02-06-2002, 11:33 AM
There are ANSI versions and Unicode versions of this file. They are different for WinNT and Win9x.

Look here:
http://support.microsoft.com/servicedesks/fileversion/dllinfo.asp?fr=0&sd=msdn

You should probably have a File Group with the 9x version (set the properties of the File Group for the OS's) and one for WinNT.

AshleyC
02-06-2002, 11:50 AM
Ye ive got file groups set up for 9x and NT/2000 with the appropriate dll in each. If i take that dll off the machine first and then run the install everything goes on fine, it just doesnt want to install the new one when the old one is there.

davestiff
02-06-2002, 11:53 AM
Can you list the Properties of the File Group here?

AshleyC
02-06-2002, 12:29 PM
sure, the important bits anyway :)

This is for the NT only filegroup with atl.dll in it:

Shared = No
Potentially Locked = No
Self-registered = Yes
Os = Nt 4.0, Windows 2000
Overwrite = Newerversion\newerdate
destination = <winsysdir>



Just had a thought that Shared and Potentialy Locked should be set to Yes so ill give that a bash.

*edit* Nope, setting those to Yes didnt make any differnce.

davestiff
02-06-2002, 12:41 PM
You should have Shared and Potentially locked set to Yes. Leslie Easter ("BulletProof Installs") recommends always setting Potentially Locked to Yes.

Two more questions:

1. What is the version that exists on the machine you want to install on? What is the version you are installing? (Go into the Properties of the file and check Properties and Version)

2. Does this happen on more than on NT machine?

AshleyC
02-07-2002, 05:44 AM
yeah this happens on more than one NT machine. Not sure about 2000.

The version im trying to install is: 3.00.8449 and the version that gets installed by IE5.5 is 2.00.7024


*edit*
One other thing is that the file that IE instlls has a blank entry in its OLESelfRegister field, under Properties->Version and the one im trying to install has a "$" in the value. No idea what that means.

davestiff
02-07-2002, 07:16 AM
I have two versions of 3.00.8449 here.

One is ANSI and one is Unicode. You should check the Properties of the file to ensure you are installing the correct one.

One says:

3.00.8449 ATL Module for Windows (ANSI)

and the other:

3.00.8449 ATL Module for Windows NT (Unicode)

The latest version is:

4.0 ATL Module for Windows NT (Unicode)

AshleyC
02-08-2002, 06:12 AM
Ok ive given up trying to get installshield to check and overwrite the file using the propeties fields in the Filegroups page and im trying to do it manually now. No idea why it refuses to overwrite it since all the settings seem ok.

Im using VerGetFileVersion() and VerCompare() to check the file already installed on the machine and deleteing it if its an earlier NT version. This works fine, what i cant do is unregister Atl.Dll first. Need to do that before i delete it.

How do i call RegSvr32 to unregister atl.dll?

Can someone give me the line of code to run this command:

"c:\winnt\system32\regsvr32 /s c:\winnt\system32\atl.dll -u"

davestiff
02-08-2002, 07:23 AM
szProgram = WINSYSDIR ^ "regsvr32.exe";
szCmdLine = "/s " + WINSYSDIR^"atl.dll " + "-u";
LaunchAppAndWait (szProgram, szCmdLine, WAIT);

(the spaces are intentional in szCmdLine)

padmaxi
05-28-2002, 09:11 AM
Hi,
I am now using InstallShield Professional 6.3 for installing my VB6 application, that uses several third-party components (ocx,dll).
One of the ocx (sax smartui) needs to be installed with the merge-mode (SmartUI.msm)

I heard that it is not possibe to use msm along with InstallShield Professional 6.3.

How far it is true?

If True, are there any alternative methods available for solving this problem?

If Available Please write back to me, I am in extreeme need.

Regards
R.Padmakumar.

davestiff
05-28-2002, 09:20 AM
You should create a new thread for this question. I don't think it applies to this thread and you will get more responses as a new thread.