Personnellement, je recommande d'utiliser AppCmd.exe (la première puce de matthewthurlow) car vous n'avez pas besoin de compter sur les composants de gestion hérités en cours d'installation, ni de risquer de modifier manuellement la configuration XML.
Si vous n'êtes pas à l'aise avec APPCMD, Mike Volodarski a un grand article sur Getting Started with AppCmd.exe et Microsoft IIS Configuration Reference est excellent, offrant l'interface utilisateur, le code et APPCMD exemples pour modifier chacun des éléments de configuration (par exemple Application Pools). Le IIS7 Administration Pack inclut également un éditeur de configuration qui vous permet de generate AppCmd scripts à partir de n'importe quelle configuration existante.
Pour intégrer AppCmd dans WiX, vous devez créer et planifier deux actions personnalisées pour chaque commande. Il y a des informations générales dans le manuel documenting this procedure de WiX v3, et j'ai inclus un exemple concret ci-dessous.
D'abord, vous devez mettre en place une action immédiate pour stocker la ligne de commande dans une propriété:
<CustomAction
Id="CreateAppPool_Cmd"
Property="CreateAppPool"
Execute="immediate"
Value=""[WindowsFolder]system32\inetsrv\APPCMD.EXE" add apppool /name:"[APP_POOL_NAME]"" />
Ensuite, vous configurez une action différée qui fait référence à cette propriété:
<CustomAction
Id="CreateAppPool"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="ignore"
Impersonate="no"/>
Et Enfin, vous devez planifier ces derniers. L'action immédiate qui définit les propriétés semble fonctionner correctement après InstallFinalize et l'action différée fonctionne après InstallFiles. Je n'ai pas encore compris les actions de retour en arrière.MapGuide Open Source exécute cette méthode de manière extensive; Vous pouvez voir la planification CA dans notre fichier MapGuide.wxs et la définition CA dans notre fichier IIS7.wxs.
Eh bien, malheureusement, les extensions IIS ne sont pas encore supportées par IIS7. – alexn