Hi,
I'm developing three .net applications that depends on the same windows NT service for running. Each one of the three .net application are to be installed indipendentely from the others on the same PC and of course are to be distributed separately. The version compatibility to the service interface is not an issue.
I wrote 4 Visual Studio 2005 setup projects:
0. Merge Module Setup Prj: Win NT Service + its Config App
1. Win App Setup Prj: app A + Merge Module
2. Win App Setup Prj: app B + Merge Module
3. Win App Setup Prj: app C + Merge Module
In project 0, for registering/unregistering the Windows Service I'm using Custom Actions (as suggested by Microsoft) where I put the primary output of the project of the service.
Each setup install and/or uninstall of App A, App B, App B works fine but, when I try to execute the installation of App x after App y on the same PC, a message "Service already present" appears and the second installation is rolled back.
In my opinion it seems that the custom actions inside the merge module are always executed, even if the merge module is not installed (this should be true for the second installed application)
I tried to apply conditions to the custom actions in the merge module:
Install= "NOT Installed", Uninstall= "Installed AND REMOVE"
but this does not seem to work.
Is there any way I can get out of this problem?
I think this is supposed to be a common problem when creating setups for different apps sharing same services.
Thanks in advance,
Luca
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.
C# Windows NT Service in a merge module
Started by
biasosoft
, Jul 14 2008 17:20
1 reply to this topic
Posted 14 July 2008 - 20:46
Merge modules are not installed as entities of their own. Instead they become part of the product at the time you build the msi file. So Installed etc. always mean the product, not the module.
Instead, you have to use conditions based on the selection state of a component in the merge module, like
$YourComponent=3
See help topic "Conditional Statement Syntax" for details.
Instead, you have to use conditions based on the selection state of a component in the merge module, like
$YourComponent=3
See help topic "Conditional Statement Syntax" for details.
Stefan Krüger
InstallSite.org twitter facebook