自己登録の順序の指定
SelfRegModules および SelfUnRegModules アクションを使用して、インストーラーで自己登録 DLL を登録または登録解除する順序を指定できないことに注意してください。 これらのアクションにより、SelfReg テーブルに一覧表示されているすべてのモジュールが登録されます。 インストーラーは .exe ファイルを自己登録しません。
インストーラーがモジュールを登録または登録解除する順序を指定するには、モジュールごとに 2 つのカスタム アクションを使用する必要があります。 1 つは DllRegisterServer 用のカスタム アクションで、2 つ目は DllUnregisterServer 用のカスタム アクションです。 これらのカスタム アクションは、DLL を登録または登録解除するシーケンス内のポイントにおいて InstallExecuteSequence テーブルで作成する必要があります。
次の例は、アクション シーケンスの特定のポイントで DLL の自己登録をスケジュールするデータベースを作成する方法を示しています。
File テーブル (一部)
ファイル | Component_ | FileName | シーケンス |
---|---|---|---|
mydll | myComponent | Mydll.dll | 13 |
Component テーブル (一部)
コンポーネント | ComponentId | Directory_ | KeyPath |
---|---|---|---|
myComponent | {a GUID} | myFolder | mydll |
ディレクトリ | Directory_Parent | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
myFolder | TARGETDIR | myFolder|My Folder |
アクション | Type | source | 移行先 |
---|---|---|---|
mydllREG | 3170 | myFolder | "[SystemFolder]msiexec" /y "[#mydll]" |
mydllUNREG | 3170 | myFolder | "[SystemFolder]msiexec" /z "[#mydll]" |
InstallExecuteSequence テーブル (一部)
アクション | 条件 | シーケンス |
---|---|---|
SelfUnregModules | 2200 | |
mydllUNREG | $myComponent=2 | 2201 |
RemoveFiles | 3500 | |
InstallFiles | 4000 | |
SelfRegModules | 6500 | |
mydllREG | $myComponent>2 | 6501 |