/build/static/layout/Breadcrumb_cap_w.png

Questions about some TypeLib Entries

So ive been packaging for a while, but really just repackaging and some simple RIP's. Recently ive been tasked with trying to get into some more serious so Im trying to read around and get some info. I have to package Bloomberg into an MSI, ive done it multiple ways in Wise but all have come up less the satisfactory, lots of DLL errors.

Now when I package it into a RIP with the Altiris tools it works fine, i convert that into an msi and it deploys perfect, so far.


I started poking around in the tables to see what was getting registered and it looks like the RIP->MSI has no entries in the typelib table while the Wise has about 15 or so. My question basically is, what exactly are these entries for, and what is best practice regarding them?

0 Comments   [ + ] Show comments

Answers (6)

Posted by: kkaminsk 16 years ago
9th Degree Black Belt
0
The typelib table is to facilitate Windows Installer advertising for on demand installation and self healing. Wise has the option in setup capture to retain the advertising info and leave the registry edits as is. This is a nice compromise because we used to configure Wise to not use the advertising tables because of the issue you are seeing where it cannot perform a proper installation.
Posted by: Kungfus0n 16 years ago
Senior Yellow Belt
0
Where would this option be in Wise Package studio?

Also are these entries not used if no self healing or advertising is needed?
Posted by: kkaminsk 16 years ago
9th Degree Black Belt
0
Start setup capture, click settings and configure via the drop down box called Advertising Setting (Windows Installer).

If the entries are in the table then they are used but if they are only in the registry table then there is no advertising data for TypeLibs in the MSI.
Posted by: Kungfus0n 16 years ago
Senior Yellow Belt
0
Thanks alot, you have any suggested reading that I could do on the subject?
Posted by: jmcfadyen 16 years ago
5th Degree Black Belt
0
a typelib is actually used to used to expose the methods and properties of a Class.

Where a class is an object which contains methods and properties in a programming context.

the typelib table has a little more functionality than described earlier. It actually deploy's type libraries which are used by other applications to expose the methods and properties.

Typelibs can be deployed via the registry and typelib table the latter as explainer earlier ALSO adds advertising that specific typelib for self healing and install on demand.

the basic rundown of the registry info is this

progid is a friendly name which maps to a classID (much like how DNS maps to an IP)

a class id has a GUID which relates to the Class (code)

the classid will have an inprocserver32 or localserver child value which contains the path to a dll


so progid --> classid --> inproc --> dll path


the classid may also map to APPID and TYPELIB however these are not required but give additional functionality

APPID handle permissions on COM and DCOM objects.

this is the basic short version, I will be publishing a long version of this next week drop me a line later in the week to remind me and I will send you the link.
Posted by: anonymous_9363 16 years ago
Red Belt
0
Mildly off-topic but how much *easier* would this nonsense have been to grasp conceptually if MS had used a logical tree structure to contain it:

HKCR\progid\classid\inproc\dll path

Oh wait, I forgot..."Microsoft...logic"...the ultimate non-sequitor
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ