0
votes

I am newbie on WIX and trying to install msi as part of existing (BIG) Wix Setup project which already installed couple of application. So I Add package in Bootstrapper bundle same like an existing package for another msi.

<Fragment>
        <Variable Name="MyCoditionVariable" Type="numeric" Value="0"/> <!--This variable is being set by selected feature in UI-->
        <PackageGroup Id="MyMSIConnector">
          <MsiPackage Id="MyMSIConnectorSetup"
              DisplayName="My MSI"
              Cache="no"
              Compressed="yes"
              ForcePerMachine="yes"
              Permanent="no"
              Vital="yes"
              SourceFile="$(var.RedistDir)\Connector.msi"
              InstallCondition="MyCoditionVariable">
          </MsiPackage>
        </PackageGroup>
    </Fragment>

It installed successfully in default Porgram Files (86) folder. This msi also install Window Service which started by default. Now my requirements is - After installation I want to stop this window service. - And also add up a registry value for this msi installed or not.

So I surely need a component but I am not sure, how can I create a Component without relationship of this msi/files. If I try

<Fragment>
    <DirectoryRef Id="ProgramFilesFolder">
      <Component Id="MyMSICompnonentId" Guid="{3F29E17B-F4E3-4656-BA97-7ACE9D202FA5}">
        <ServiceControl Id="MyMSIControl" Name="Control.CommunicationManager" Stop="both" Remove="uninstall" Wait="yes"/>
      </Component>
    </DirectoryRef>
  </Fragment>

and then in Product.wxs

<Feature Id="ProductFeature" Title="StopCognyticService" Level="1">
        <ComponentRef Id="MyMSICompnonentId" />
    </Feature>

project doesn't build because there is no KeyFile or location. If I setup 'KeyPath="yes"' with component then project build but it completely ignore during installation (might be it needs association with physical file on user machine???)

MSI (s) (84:28) [02:03:16:324]: Component: MyMSICompnonentId; Installed: Absent;   Request: Null;   Action: Null

Any hint on it please.

1

1 Answers

0
votes

While you could add a CreateFolder element to the component, does this ServiceControl element really need it's own component? You could just add it as a resource to another component such as the component that is updating your registry value.