注: Wix# は使用しません。
サービスのインストール
同じ実行可能ファイル? : 念のため言っておきますが、これはアプリとサービスとして実行できる同じ実行可能ファイルですか? (実際に一度それを実行できるアプリケーションを作成しましたが、うまく機能しませんでした)。
サービスのインストール : サービスとしてのインストールは、通常、組み込みの MSI コンストラクトを介して行われます (これは既にご存じだと思いますが、これは参照と完全性のためだけです)。
カスタム アクション: 多くの人がカスタム アクションを使用してサービスをインストールします。これは通常、 MSI のアンチパターンです (不要、エラーが発生しやすいなど)。あなたが参照するバイナリが2つの異なるファイルでない限り、あなたが提案するように、いくつかの場合にのみサービスをインストールするためにカスタムアクションが必要になると思います。カスタム アクションを登録してから、サービスを開始する必要があります。サービスの起動動作も設定する必要があります。
代替案?
バイナリが単一のバイナリであり、2 つの異なるバイナリではないと仮定すると、次のようになります。
2 つの MSI : 2 つの異なるタスクを実行するために 2 つの MSI ファイルをコンパイルすることは許容されますか? サービス バージョンをインストールするための MSI と、アプリケーション バージョンをインストールするための MSI が 1 つずつありますか? どちらか一方をインストールし、インストール先が異なることを確認します (MSI の参照カウントが干渉しないようにします。これにより、両方の MSI を同時にインストールすることもできます)。setup.exe バンドルを使用していずれかをインストールできますか?
Full Monty : バイナリの 2 つのコピーを同時にインストールし、1 つをサービスとして登録できると思います。次に、ユーザーにサービスを開始するように依頼する必要がありますか? それは、起動時にサービスを自動的に起動するか、手動で開始するか、すぐに開始するかなどを設定するカスタム アクションになりますか? または、常にサービスとして登録して実行し、アプリケーションをインタラクティブに実行できるようにすることはできますか? スレッディング?