Summary
This article discusses a scenario when the installer lays down components, such as DLLs, Windows Registry entries, or shortcut files, these components are getting installed as dynamic components.
Project Type
Basic MSI
Symptoms
When trying to not install any component as a dynamic component, there are duplicate components prefixed with a double underscore with a 65 appended and the components are being installed as dynamic components anyway.
MSI (s) (28:C4) [18:00:52:463]: Component: Shortcut; Installed: Absent; Request: Local; Action: Local; Client State: Unknown
MSI (s) (28:C4) [18:00:52:463]: Component: __ServerDLL65; Installed: Null; Request: Local; Action: Local; Client State: Null
MSI (s) (28:C4) [18:00:52:463]: Component: __JDProcessorDLL65; Installed: Null; Request: Local; Action: Local; Client State: Null
MSI (s) (28:C4) [18:00:52:463]: Component: __ProcessorDLL65; Installed: Null; Request: Local; Action: Local; Client State: Null
MSI (s) (28:C4) [18:00:52:463]: Component: __Registry65; Installed: Null; Request: Local; Action: Local; Client State: Null
MSI (s) (28:C4) [18:00:52:463]: Component: __NotificationReg65; Installed: Null; Request: Local; Action: Local; Client State: Null
MSI (s) (28:C4) [18:00:52:463]: Component: __Shortcut65; Installed: Null; Request: Local; Action: Local; Client State: Null
MSI (s) (28:C4) [18:00:52:463]: Component: JDProcessorDLL; Installed: Absent; Request: Local; Action: Local; Client State: Unknown
MSI (s) (28:C4) [18:00:52:463]: Component: JDProcessorINI; Installed: Absent; Request: Local; Action: Local; Client State: Unknown
MSI (s) (28:C4) [18:00:52:463]: Component: ProcessorDLL; Installed: Absent; Request: Local; Action: Local; Client State: Unknown
Discussion
There are cases where a component can install resources into locations other than the location referenced in the Directory_ column. In order to account for that and to more accurately adjust costing when a Directory's target location changes, such as when the user alters the install location, the installer uses a mechanism called cost-linking. For each alternate target folder for the component, the installer creates a new subcomponent.
Cost-linking is used to account for the following MSI tables: Shortcut, RemoveFile, MoveFile, DuplicateFile, Registry,IniFile.
Cost-linking is also used for all global/shared assembly components.
Action start <time>: InstallValidate. MSI (s) <process info>: Feature: Simple; Installed: Absent; Request: Local; Action: Local MSI (s) <process info>: Component: Simple7890123456789012345678901234567890123456789012345; Installed: Absent; Request: Local; Action: Local MSI (s) <process info>: Component: __ Simple789012345678901234567890123456789065; Installed: Null; Request: Local; Action: Local
For example, let's look again at the InstallValidate action dump from above for an example setup where the component installs both a file and a registry key.
Note the subcomponent. That component was created to account for cost associated with the registry key. It's a cost-linked component for the component + WindowsFolder directory. The component's current cost (for the parent) is associated with the SimpleDir directory which is the authored directory for the component in the Component table. At this point, the component doesn't have any previously created child components so it starts with a suffix of 65. Also, only the first 40 characters were used of the component name (which had 55 characters).
Related Articles
What Are the Differences Between Basic MSI and InstallScript MSI Project? 8Number of Views Basic MSI Project: Launch Executable .exe File If the .exe File Is Found Using a System Search and Force a Reboot 8Number of Views Perform Major Upgrade of InstallScript MSI Project with Basic MSI 3Number of Views Convert a Basic MSI Project to an InstallScript Project 3Number of Views Implementing Setup Types in a Basic MSI Project 3Number of Views
Hi, I am Reva - Ask me anything.
No new updates
Thanks for the feedback!
Your feedback has been saved.Rate this response:
Add Additional feedback ( Optional )
Are you sure you want to cancel
the case creation?
Are you sure you want to cancel the case creation?
Are you sure you want to close this case
| Products | Region | Phone Numbers |
|---|---|---|
| FlexNet Operations FlexNet Embedded FlexNet Publisher FlexNet Connect FlexNet Code Insight InstallAnywhere InstallShield |
North America * |
+1 630-332-2513 (toll) +1 877-279-2853 (toll-free in North America) |
| Europe * |
+44 1925 944367 (toll) +44 800 047 8642 (toll-free in Europe) |
|
| Japan * | +81 3-4540-5335 (select option 2) | |
| Australia * |
+61 3 9895 2177 +61 1800 560 603 (toll-free in Australia) |
|
|
Usage Intelligence (formerly
Revulytics) Compliance Intelligence |
Please use the Case Portal to submit your support ticket or reach out to your Revenera contact. | |
Case id: 00001065
Activity: Status change: 2 hours ago