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

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

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.
Answered 06/20/2007 by: kkaminsk
Ninth Degree Black Belt

Please log in to comment
0
Where would this option be in Wise Package studio?

Also are these entries not used if no self healing or advertising is needed?
Answered 06/21/2007 by: Kungfus0n
Senior Yellow Belt

Please log in to comment
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.
Answered 06/21/2007 by: kkaminsk
Ninth Degree Black Belt

Please log in to comment
0
Thanks alot, you have any suggested reading that I could do on the subject?
Answered 06/22/2007 by: Kungfus0n
Senior Yellow Belt

Please log in to comment
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.
Answered 06/24/2007 by: jmcfadyen
Fifth Degree Black Belt

Please log in to comment
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
Answered 06/25/2007 by: VBScab
Red Belt

Please log in to comment
Answer this question or Comment on this question for clarity