Wise Packaging

Darwin Descriptors - Basics and Directions 

02-19-2009 11:59 AM

The most common method of ensuring applications remain highly available is through Windows Installer file associations. This mechanism operates very much the same way as Windows Installer shortcuts, but instead of directly linking to an application's executable file, the association is made by a registered file type. As you can see in Figure below, Windows Installer file associations are defined using the same mechanism that standard file associations use, with one exception. Notice that an extra value is listed under the typical "shell\Open\command" registry key. The extra value (also named "command") is where Windows Installer looks any time you double-click on a file from within the Windows shell.

This cryptic-looking string, sometimes referred to as a "Darwin Descriptor" is actually an encoded representation of a specific product, component, and feature. If this extra value exists, Windows Installer will decode the data, and use it to perform checks against that product and component. If the component is found to be missing or corrupt, Windows Installer will launch a repair to restore the missing file or data, and finally launch the referenced application as normal, passing the appropriate command-line options to it.

Viewing a "Darwin Descriptor" for a file association

Viewing a "Darwin Descriptor" for a COM Server

The Darwin Descriptor for COM Advertising is stored as the InProcServer32 registry value. The advertised shortcut's TargetPath is a combination of the ProductCode ? Darwin Descriptor + some tags. Open the shortcut using ex. notepad and find the descriptor. A Darwin Descriptor is an encoded string and when decoded produces a combination of the ProductCode, Feature ? ComponentId(s).As the Darwin Descriptor is stored as a "REG_MULTI_SZ" entry it can contain more then one descriptor where other packages may have installed same component. We can find Darwin Descriptors under the following locations

HKCR\Installer\Assemblies and HKCR\Installer\Components

HKCR\Installer\Win32Assemblies

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\(sid)\Products\(compressed)\Features(targetpath)

While Packaging, we can use snapshot with advertising (not registry as-is) as it gives some extra entrypoints (Darwin Descriptors) to trigger a potential repair if required. If there are some problems for the application to call any COM component/ActiveX functions then Advertsing setting “Retain Registry Information as-is” works better.

References:

http://msdn.microsoft.com/en-us/library/aa302344.aspx http://msiworld.blogspot.com/2007/07/advertising-info.html

Thanks:

Thanks to Anuradha who shared this Information with me!

Statistics
0 Favorited
0 Views
11 Files
0 Shares
0 Downloads
Attachment(s)
gif file
1.gif   12K   1 version
Uploaded - 02-25-2020
jpg file
13031.jpg   3K   1 version
Uploaded - 02-25-2020
jpg file
13031_1_0.jpg   7K   1 version
Uploaded - 02-25-2020
jpg file
13031_2_0.jpg   7K   1 version
Uploaded - 02-25-2020
jpg file
13031_3_0.jpg   7K   1 version
Uploaded - 02-25-2020
jpg file
13031_4.jpg   6K   1 version
Uploaded - 02-25-2020
jpg file
13031_5.jpg   6K   1 version
Uploaded - 02-25-2020
gif file
2.gif   15K   1 version
Uploaded - 02-25-2020
gif file
3.gif   18K   1 version
Uploaded - 02-25-2020
gif file
4.gif   13K   1 version
Uploaded - 02-25-2020
gif file
5.gif   12K   1 version
Uploaded - 02-25-2020

Tags and Keywords

Comments

10-26-2009 03:17 PM

Excellent writeup ..

03-02-2009 04:22 AM

Check out my .exe to decode the DD scramble, I have just submitted it.  You will need to rename it from .txt.

Related Entries and Links

No Related Resource entered.