wix:安装/卸载完成后重新启动现有服务

时间:2013-02-07 14:57:01

标签: installation wix windows-services installer

我想在安装程序完成安装或卸载后重新启动正在运行的服务 我找到了这段代码:

<ServiceControl Id="SomeUniqueId" Name="NameOfTheirService"
            Start="both" Stop="both"/>

但我在哪里附加此代码? 到我所在的组件?

代码:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="325c4bfd-6614-43e9-aedb-93661295352d" Name="Plugin" Language="1033" Version="1.0.0.0"
       Manufacturer="XXX Inc." UpgradeCode="4307526e-3902-40d0-991b-bacff9b3d71b">
<Package InstallerVersion="200" Compressed="yes" />
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
<Property Id="XXXXXX">
  <RegistrySearch Id="XXXXXX" Type="raw" 
                  Root="HKLM" Key="SOFTWARE\XXX\XXX" Name="InstallationPath" />

</Property>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="XXXXXX">
    <Component Id="ProductComponent" Guid="93118c45-f0c0-4c9e-9168-8ea905e9427c">
      <File Id="pluggin" Source="C://setup.log" KeyPath="yes" Checksum="yes"/>
      <ServiceControl Id="StartService" Name="servicename"
         Start="both" Stop="both"/>
    </Component>     
    </Directory>
    </Directory>
    <Feature Id="ProductFeature" Title="install" Level="1">
        <ComponentRef Id="ProductComponent" />
  <ComponentGroupRef Id="Product.Generated" />
    </Feature>
</Product>

1 个答案:

答案 0 :(得分:1)

ServiceControl元素必须放在您安装的组件中。来自WiX .chm:

  

启动,停止和删除父组件的服务。此元素用于通过使用start,stop和remove属性来控制MSI或MSM文件安装的服务的状态。例如,Start ='install'Stop ='both'Remove ='uninstall'意味着:在安装时启动服务,在卸载产品时删除服务,并在安装和卸载时停止服务。