2

サービスとアプリの 2 つのインストール モードがあります。

Wix# を使用して、この単純な 2 つのラジオ ボタン ダイアログをユーザーに表示する方法を見つけることができませんでした。

Choose your installation:
(*) App [default]
( ) Service

そして、それに応じて展開/実行するファイル (およびアクション) を選択します。

ユーザーの決定を実際の操作に結び付けるにはどうすればよいでしょうか。

編集:

最終的にそれを行う方法を発見しましたが、GUI の選択を展開されたファイルに影響させることはできません (ただし、バインドされたプロパティは変更されます)。これが新しい、より詳細な質問です。

プロパティはユーザーの選択ごとに変更されるようですが、条件付きファイルはデプロイされていません

4

2 に答える 2

0

: Wix# は使用しません。

サービスのインストール

同じ実行可能ファイル? : 念のため言っておきますが、これはアプリとサービスとして実行できる同じ実行可能ファイルですか? (実際に一度それを実行できるアプリケーションを作成しましたが、うまく機能しませんでした)。

サービスのインストール : サービスとしてのインストールは、通常、組み込みの MSI コンストラクトを介して行われます (これは既にご存じだと思いますが、これは参照と完全性のためだけです)。

カスタム アクション: 多くの人がカスタム アクションを使用してサービスをインストールします。これは通常、 MSI のアンチパターンです (不要、エラーが発生しやすいなど)。あなたが参照するバイナリが2つの異なるファイルでない限り、あなたが提案するように、いくつかの場合にのみサービスをインストールするためにカスタムアクションが必要になると思います。カスタム アクションを登録してから、サービスを開始する必要があります。サービスの起動動作も設定する必要があります。


代替案?

バイナリが単一のバイナリであり、2 つの異なるバイナリではないと仮定すると、次のようになります。

2 つの MSI : 2 つの異なるタスクを実行するために 2 つの MSI ファイルをコンパイルすることは許容されますか? サービス バージョンをインストールするための MSI と、アプリケーション バージョンをインストールするための MSI が 1 つずつありますか? どちらか一方をインストールし、インストール先が異なることを確認します (MSI の参照カウントが干渉しないようにします。これにより、両方の MSI を同時にインストールすることもできます)。setup.exe バンドルを使用していずれかをインストールできますか?

Full Monty : バイナリの 2 つのコピーを同時にインストールし、1 つをサービスとして登録できると思います。次に、ユーザーにサービスを開始するように依頼する必要がありますか? それは、起動時にサービスを自動的に起動するか、手動で開始するか、すぐに開始するかなどを設定するカスタム アクションになりますか? または、常にサービスとして登録して実行し、アプリケーションをインタラクティブに実行できるようにすることはできますか? スレッディング?

于 2019-09-15T14:54:37.320 に答える