WiX @ wiki
変数を使う
最終更新:
wixwiki
-
view
実行時の挙動を動的に変更・制御する場合、変数を使用することが多い。ここではまずは、変数の基本的な使用方法について説明しよう。
静的な値の代入
変数に値を代入する方法の1つとして、Propertyタグがある。
<Property Id="PROP1" Value="hoge value" />
このようにPropertyタグを記述することで、WindowsInstallerの実行開始直後に「PROP1」という名前の変数に「hoge value」という値が入ることになる。(変数に値が代入される正確なタイミングについては「実行シーケンス」を参照)あるいは、
<Property Id="PROP1">hoge value</Property>
でも同様の代入が可能である。
変数の値を参照する場合、
[PROP1]
というように、変数名の両端を [ と ] でくくればよい。
ここでひとつ注意することがある。変数の命名規則についてだ。変数名は基本的に全て大文字でつけたほうが良い。というのも、全て大文字の場合の変数と小文字が混じった場合の変数とで、扱いが違うからだ。詳しいことは私がまだ理解できていないため曖昧な書き方になるが、アルファベット小文字が含まれていると変数が有効になる範囲が絞られてしまうように見える。私は仕事でこの点にハマって、3日ほど時間を無駄にした記憶がある・・・。
さて、話を戻して上記のPropertyタグによる代入をもう一度見ていただきたい。ここで代入している値は、コンパイル前に記述した静的なものだ。つまりこの記述は、実行時の動作を動的に制御する目的ではあまり使えない。ではいったい何に使えるのか?
実際に使われている分かりやすい例としては、WiXに標準でついているユーザインターフェースのライブラリーがある。(ユーザーインターフェースライブラリーの詳しい使い方についてはユーザーインターフェースカテゴリーの記事を参照のこと)
ユーザーインターフェースライブラリー内には、どのボタンを押すと次にどのダイアログが表示される、といった画面遷移に関する情報が存在しており、この画面遷移の情報が変数を使って定義されている。そのためライブラリーを使うユーザは、自身が作成したWiXソース内において、画面遷移情報を保持する変数に値を代入することで、画面遷移を自由に変更することができる。
ボタンやダイアログ上に表示される文字も、変数の値を使用するよう定義されている。そのため、該当する変数に別の文字列を代入するWiXソースを作成すれば、ライブラリーの表示文字列に関するリソースファイルとすることができる。
このように変数を使用することで、ライブラリーのような資源そのものに手を加える必要がなく、再利用性や保守性の向上に役立つというわけだ。
ボタンやダイアログ上に表示される文字も、変数の値を使用するよう定義されている。そのため、該当する変数に別の文字列を代入するWiXソースを作成すれば、ライブラリーの表示文字列に関するリソースファイルとすることができる。
このように変数を使用することで、ライブラリーのような資源そのものに手を加える必要がなく、再利用性や保守性の向上に役立つというわけだ。
動的な代入
Propertyタグでの変数値の操作には、上記のような静的な値の代入だけでなく、ある動作の結果(戻り値)を代入することもできる。マニュアルでPropertyタグについて調べてみてほしい。Propertyタグの子要素になりうるものが、Propertyタグで格納できる動作だ。例えばレジストリを検索してその結果を代入するといったことができる。
<Property Id="PROP2"> <RegistrySearch Id="REGSEARCH1" Type="raw" Root="HKLM" Key="SOFTWARE\HogeSoft" Name="SOMEVALUE" /> </Property>
Propertyタグの子要素としてRegistrySearchタグを記述している。この記述によって、レジストリ中の「HKEY_LOCAL_MACHINE\SOFTWARE\HogeSoft\SOMEVALUE」の値が「PROP2」に代入される。察しのいい方ならもうわかると思うが、変数に何を動的に代入できるかは、マニュアルでPropertyタグの子要素について調べてもらえばわかる。
visitor: - (today: - ) Author : nagatyo
コメント (注:コメントは管理人が適宜消去する場合があります)