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

ServiceInstall vs. msm


2 replies to this topic

Quinapalus

Quinapalus
  • Members
  • 7 posts

Posted 06 April 2005 - 06:47

I guess this would be considered a design question.

So I have a service that's essentially installed in two steps: first PythonService.exe is installed as the service, then HKLM\...\PythonClass is set to some class. Then the service is started.

Now, to decrease the overall horribility of the design, I have packaged python as a merge module, since it a) constitutes the large majority of my application's total fileage, and cool.gif doesn't change much. But at least as far as installshield is concerned, ServiceInstall belongs to the MSI and not to the MSM. And the whole theory of merge modules is that they get submerged in the MSI. So just on the general principle of keeping related parts together, it seems to me like the MSM should install the service (since it owns the .exe), then the MSI should create the reg key that associates the generic python service with the class, and then start and stop the service according to what's going on in the installation. But the MSM doesn't seem to have a ServiceInstall table that would get merged into that of the MSI. The next most sensible thing I could see would be just adding a ServiceInstall row in the MSI, but that makes it depend on a file that isn't there until merge time. I don't know whether that's the sort of reference violation that bothers WI, or just me.

Thoughts?

Quinapalus

Quinapalus
  • Members
  • 7 posts

Posted 06 April 2005 - 06:48

Gee, I didn't even know "b)" was a standard smiley.

GunSun

GunSun
  • Full Members
  • 4 posts

Posted 02 September 2005 - 06:46

It´s been a while since you wrote your post and maybe you have already found a solution to your problem.

However, it is possible to specify the logics for the installation and uninstallation of a service in the msm and then have it merged into the msi's. In InstallShield, just browse to the component view of your merge module and add data to Advanced Settings -> "Install NT Services" and "Control NT Services" of your service exe. In the "Control NT Services" section you can specify start and stop events, that the msi would use after the merge.

Once the msm has been merged into an msi it will work in the same way as if it had been in the msi in the first place.