0

サービスとして実行したい Kofax コンポーネント exe があります。以前は、srvany.exe を使用して、exe をサービスとして手動で登録していました。サービスとしてインストールする wix msi インストーラーを作成しています。インストール後、手動で管理者としてexeを実行している場合、管理者がactivexエラーを発生させることなく、完全に実行され、適切な更新が行われます。そのため、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>
4

1 に答える 1