カスタムアクションは、多くの 新しいタイプのリソースを インストールとコンフィギュレーション できるようにします。これらのリソースタイプのそれぞれが、それらを MSI パッケージで インストールできる様にする 1つあるいはより多くの エレメントを持っています。 する必要のある唯一の事は、インストールしたいリソースの為の 適切なエレメントを理解し、 これらのエレメントで要求される アトリビュートをセットする事です。エレメントは、 定義されている WiX extension の為の適切な名前空間で プリフィックスをつける必要があります。 コンパイラーとリンカーが 最終的な MSI に 自動的に 妥当な エラーメッセージ、カスタム アクション レコード、バイナリー レコードを 追加するように、コマンドラインの一部として extension DLL へのフルパスを渡さなければ なりません。
まず、MSI がインストールされた時に ユーザーアカウントを作成する 例を試しましょう。 この機能は WixUtilExtension.dll で定義されていて、<User> エレメントとして ユーザーに晒されています。
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' xmlns:util='http://schemas.microsoft.com/wix/UtilExtension' > <Product Id='PUT-GUID-HERE' Name='TestUserProduct' Language='1033' Version='0.0.0.0'> <Package Id='*' Description='Test User Package' InstallerVersion='200' Compressed='yes' /> <Directory Id='TARGETDIR' Name='SourceDir'> <Component Id='TestUserProductComponent' Guid='PUT-GUID-HERE'> <util:User Id='TEST_USER1' Name='testName1' Password='pa$$$$word'/> </Component> </Directory> <Feature Id='TestUserProductFeature' Title='Test User Product Feature' Level='1'> <ComponentRef Id='TestUserProductComponent' /> </Feature> </Product> </Wix>
これは、マシン上で "testName1" と呼ばれる パスワード "pa$$word" (プリプロセッサーは $$$$ を $$ で置き換えます) を持つ新しいユーザーを作成する シンプルな例です。
WiX オーサリングから MSI をビルドするには:
さあ、結果としてできた MSI を開くのに Orca を使って、Error table、CustomAction table、 Binary table を見て下さい。ユーザー管理について関連するデータすぺてが MSI に追加されて しまっている事に 気付くでしょう。これは、キーとなる事 2つを終えたから 起こった事です: