web-dev-qa-db-ja.com

WiXでユーザー入力用のカスタムダイアログを作成するにはどうすればよいですか?

WiXを使用してWindowsサービスのインストーラーを作成しています。サービスにインストールされて表示されるサービスの名前は、インストール時に構成可能であることが望ましいです。

たとえば、これは私が考えていることです(wix xml snip):

<ServiceInstall 
    Id="MyServiceInstaller" 
    Name="NAME_PASSED_FROM_DIALOG" 
    Type="ownProcess" 
    Start="auto" 
    ErrorControl="normal" 
    Description="My Service" 
    Account="localsystem"/> 

<ServiceControl
    Id="StartMyServiceInstaller" 
    Name="NAME_PASSED_FROM_DIALOG" 
    Start="install"
    Wait="no" />

<ServiceControl
    Id="StopMyServiceInstaller" 
    Name="NAME_PASSED_FROM_DIALOG" 
    Remove="uninstall"
    Stop="both"
    Wait="yes" />

NAME_PASSED_FROM_DIALOGは、作成されてサービスをインストールする人に表示されるカスタムダイアログに接続して、サービス名を設定/変更できるようにするものです。これは、設定されてWixUI_InstallDirダイアログセットに渡されるWIXUI_INSTALLDIRプロパティと非常に似ていると思います。

私の質問は:

インストーラーのランタイムに渡されるユーザー入力を受け入れるカスタムUIダイアログを作成するにはどうすればよいですか?

27
Scott Saad

UIを楽しんでください!

編集:回答への元のリンクはもう存在しません。 FireGiant(Wixのメンテナー) いくつかの例 このプロセスの一部として、しかしそれはこの質問に完全に答えるものではありません。そこに もう1つのチュートリアルがありますUPDATE Aug.2018:リンクはウェイバックマシンから復活しました)この質問に答えてください。

何が発生するかの概要は次のとおりです。

  1. プロパティを作成する
  2. UIコントロールにこのプロパティを設定させる
  3. サービスのname属性は、[ServiceNameProperty]などのプロパティを参照します。

ただし、これは複雑であり、新しいUIダイアログを作成するために提案されている方法は、既存のダイアログを取得してそのクローンを作成し、新しいテキストで編集してコントロールし、それを使用してプロパティを設定することです。

29
Darren Kopp

UIを作成するための素晴らしいツールである WixEdit を使用してみてください

8
Andrew Usikov

ProjectInstallerインストールメソッドでsavedState辞書を使用するのはどうですか。

0
Madhulika