2

.exe ファイルをインストールし、対応する Windows サービスをインストールして開始する方法を知っています。

私が知らないのは、ユーザーのコンピューター上の既存のファイルからサービスをインストールする方法です。.exe を再度コピーしたくありません。既にユーザーのマシン上にあります。

具体的にはServiceInstallを使えばいいと思うのですが、.exeファイルはどうやって指定すればいいのでしょうか?

WiX3.6を使用しています。

ありがとう

4

1 に答える 1

0

この質問に対する答えは、「Windows インストーラーの標準機能では不可能」だと思います。別の方法は、いつものようにカスタム アクションですが、私がお勧めする方法ではありません。

Windows Installer (および WiX) は、主に次の 2 つの方法でサービスを操作できます。

  • 新しいサービスをインストールする (そしてもちろんアンインストールする)
  • 既存のサービスを構成する

後者のオプションでは、サービスをシステムにインストールする必要があります。つまり、サービス管理コンソールに存在する必要があります。そして、MSIパッケージはそれを開始/停止するだけです.

<ServiceInstall>WiX オーサリングで要素を指定すると、 ServiceInstall MSI テーブルへのレコードに反映されます。このテーブルには、コンポーネントが外部キーとして必要です。サービスの基礎となる EXE ファイルを検出する方法は、KeyPathそのコンポーネントのものです。そして、私が見る限り、それを回避する方法はありません。

したがって、この場合、2 つのオプションが表示されます (どちらも、希望するものでも期待するものでもありません)。

  • 通常の方法でサービスをインストールします。ターゲット PC に EXE ファイルがあることを忘れて、MSI パッケージと一緒に持ってきます。
  • これが重要な要件である場合は、インストールを進める前にサービスがインストールされていることを確認してください
于 2012-11-28T14:55:21.230 に答える