Spécification de l’ordre d’inscription automatique
Notez que vous ne pouvez pas spécifier l’ordre dans lequel le programme d’installation enregistre ou annule l’enregistrement automatique des dll à l’aide des actions SelfRegModules et SelfUnRegModules . Ces actions inscrivent tous les modules listés dans la table Selfreg. Le programme d’installation ne s’inscrit pas automatiquement .exe fichiers.
Pour spécifier l’ordre dans lequel le programme d’installation inscrit ou désinscrit des modules, vous devez utiliser deux actions personnalisées pour chaque module. Une action personnalisée pour DllRegisterServer et une seconde pour DllUnregisterServer. Ces actions personnalisées doivent ensuite être créées dans la table InstallExecuteSequence au point de l’ordre où la dll doit être inscrite ou désinscrite.
L’exemple suivant montre comment créer la base de données pour planifier l’inscription automatique d’une DLL à un point particulier dans la séquence d’action.
Table de fichiers (partielle)
| Fichier | Composant_ | FileName | Séquence |
|---|---|---|---|
| mydll | myComponent | Mydll.dll | 13 |
Table des composants (partielle)
| Composant | ComponentId | Répertoire_ | KeyPath |
|---|---|---|---|
| myComponent | {GUID} | mondossier | mydll |
| Répertoire | Répertoire _ parent | DefaultDir |
|---|---|---|
| TARGETDIR | SourceDir | |
| mondossier | TARGETDIR | mondossier | mon dossier |
| Action | Type | Source | Cible |
|---|---|---|---|
| mydllREG | 3170 | mondossier | « [ SystemFolder ] msiexec »/y « [ # mydll ] » |
| mydllUNREG | 3170 | mondossier | « [ SystemFolder ] msiexec "/z" [ # mydll ] " |
Table InstallExecuteSequence (partielle)
| Action | Condition | Séquence |
|---|---|---|
| SelfUnregModules | 2 200 | |
| mydllUNREG | $myComponent = 2 | 2201 |
| RemoveFiles | 3 500 | |
| InstallFiles | 4000 | |
| SelfRegModules | 6500 | |
| mydllREG | $myComponent>2 | 6501 |