Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Reinstall


2 replies to this topic

BugKiller

BugKiller
  • Members
  • 4 posts

Posted 04 July 2002 - 10:07

Hi @ ALL.

How i can always install a component in every setup that i run!

I don't use the Mainenance Mode! I have disabled this function complete. If i run my setup in first time the component will be installed successfully. After second start
the component is no more installed or overwritten! Why?
Where does installshield now what component is installed?


thanks
BugKiller

CodeSkunk

CodeSkunk
  • Members
  • 9 posts

Posted 16 July 2002 - 19:58

This is an MSI issue and not an InstallShield one.

"If" you need to re-install a component over and over from the same MSI source package then IT ISN'T A COMPONENT.

A component puts a coherent piece of data on the users machine.
The "data" beit a file, registry key, whatever is associated with a GUID.
Either the data/GUID pair are installed or they aren't
If the component data is changing and the GUID isn't and you aren't using Transitive Components, then your setup is breaking rules that it shouldn't be.
The component / GUID IDENTIFY the data you are trying to ship through a component.
If it changes, then it isn't the same component anymore.

I would guess that you might be doing things with components that they aren't meant for if you need to re-run the component installation even though it shows as installed.

When a component gets installed, the Windows installer registers the component via GUID to the registry and will never attempt to re-write a component with that GUID as long as it is already there (with a few exceptions .. see Transitive Components )

It sounds to me like you need a custom action fired off in the early stages of your UI sequence to do whatever evils that MSI won't allow you to do through it's internal mechanisms.

Good luck!

PS:  Here is the MSI help on the issue:

A component is a piece of the application or product to be installed. Examples of components include single files, a group of related files, COM objects, registration, registry keys, shortcuts, resources, libraries grouped into a directory, or shared pieces of code such as MFC or DAO.

The installer service installs or removes a component as a single coherent piece. It tracks every component by the respective component ID GUID specified in the ComponentId column of the Component table. Two components that share the same component ID are treated as multiple instances of the same component regardless of their actual content. Only a single instance of any component is installed on a user's computer. Several features or application may therefore share some components.

Because components are commonly shared, an author of an installation package must follow strict rules when specifying the components of a feature or application. This is essential for the correct operation of the Windows Installer reference counting mechanism. For more information, see Organizing Applications into Components.

In brief, these rules are:

Each component must be stored in a single folder.
No file, registry entry, shortcut, or other resources should ever be shipped as a member of more than one component. This applies across products, product versions, and companies.
CodeSkunk
Sr. Propeller Head
~Making windows my b**ch since '93

BugKiller

BugKiller
  • Members
  • 4 posts

Posted 19 July 2002 - 07:43

Hi CodeSkunk.

Thank you for your detailed response.
In the meantime i have found a better solution.

I saw that IS Dev7 install every new module (newversionnumber > oldversionnumber)
after second start. That's what is different
to IS Pro.

thanks
BugKiller