wix srvany.exe作为服务未运行

时间:2016-08-29 15:17:24

标签: vb.net wix kofax srvany

我有一个Kofax组件exe,我想将其作为服务运行。之前的srvany.exe用于手动将exe注册为服务。我正在创建一个wix msi安装程序,它将把它安装为服务。安装完成后,当我作为管理员手动运行exe时,它运行正常并进行正确的更新,否则管理员不会给出一些activex错误。因此,我检查了#34;以管理员身份运行此程序"在exe属性。我的问题是由msi安装的服务没有自动执行exe并且没有发生更新。但是,如果服务已启动并且正在运行,那么我将尝试手动运行exe,然后它会发出消息"它已经在运行"这意味着服务正在运行exe但不会更新任何事情。我应该在下面的代码中做出什么改变,以便服务可以选择exe并运行。

<Component Id="comp_KofaxCaptureQCRoute_exe" Guid="F7C1EBE7-3D7B-4E6D-8098-81EDDFD156EF" Permanent="no" Transitive="no">
            <File Id="file_KofaxCaptureQCRoute_exe" DiskId="1" Hidden="no" ReadOnly="no" TrueType="no" System="no" Vital="yes" Name="KofaxCaptureQCRoute.exe" Source="..\QC Route\KofaxCaptureQCRoute\bin\debug\KofaxCaptureQCRoute.exe" KeyPath="yes" />
        </Component>
        <Component Id="comp_file_srvany" Guid="D9CA373B-66B9-4FC5-A88D-E97FDDBBD526">
          <File Id="file_srvany" Source="..\QC Route\srvany.exe" KeyPath="yes" />

        <ServiceInstall 
        Id="QCRouteService"
        Type="ownProcess"
        Name="QCRouteService"
        DisplayName="Kofax_QCRoute_Service"
        Start="auto"
        Account="[SERVICEACCOUNT]"
        Password="[SERVICEPASSWORD]"
        ErrorControl="normal"
        Vital="yes"
         />
        <ServiceControl Id="Kofax_QCRoute_Service" Stop="both" Remove="uninstall" Name="QCRouteService" Wait="yes" />
        <RegistryKey Root="HKLM"
                 Key="SYSTEM\CurrentControlSet\Services\QCRouteService\Parameters"
          Action="createAndRemoveOnUninstall">
              <RegistryValue Type="string" Name="Application" Value="&quot;[#file_KofaxCaptureQCRoute_exe]&quot;"  />                 
        </RegistryKey>
          <RegistryKey Root="HKLM"
                 Key="SYSTEM\CurrentControlSet\Services\QCRouteService\Enum"
          Action="createAndRemoveOnUninstall">
              <RegistryValue Type="string" Name="0" Value="Root\LEGACY_QCROUTESERVICE\0000"  />
              <RegistryValue Type="integer" Name="Count" Value="1" />
              <RegistryValue Type="integer" Name="NextInstance" Value="1" />
          </RegistryKey>
      </Component>

1 个答案:

答案 0 :(得分:0)

我相信您的服务安装,您尝试在属性SERVICEACCOUNT指定的帐户下运行它,SERVICEPASSWORD可能来自其他地方看到的示例。

如果您没有设置这些属性,那么您应该使用接近这个属性的ServiceInstall

<ServiceInstall 
    Id="QCRouteService"
    Type="ownProcess"
    Name="QCRouteService"
    DisplayName="Kofax_QCRoute_Service"
    Start="auto"
    Account="LocalSystem"
    ErrorControl="normal"
    Vital="yes"/>

另请注意,您的ServiceControl已省略Start内部文本

<ServiceControl Id="Kofax_QCRoute_Service" Start="install" Stop="both" Remove="uninstall" Name="QCRouteService" Wait="yes" />