自己登録の順序の指定

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 テーブル

ディレクトリ Directory_Parent DefaultDir
TARGETDIR SourceDir
myFolder TARGETDIR myFolder|My Folder

 

CustomAction テーブル

アクション 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