Ich persönlich empfehle die Verwendung von AppCmd.exe (Matthewthurlows erster Punkt), da Sie sich nicht darauf verlassen müssen, dass die Legacy-Verwaltungskomponenten installiert sind, oder das Risiko eingehen, die Konfigurations-XML manuell zu ändern.
Wenn Sie mit AppCmd nicht vertraut sind, hat Mike Volodarsky einen großartigen Artikel über Erste Schritte mit AppCmd.exe und die Microsoft IIS-Konfigurationsreferenz ist hervorragend und bietet UI-, Code- und AppCmd-Beispiele für die Änderung der einzelnen Konfigurationselemente (z. B. Anwendungspools ). Die Website IIS7-Verwaltungspaket enthält auch einen Konfigurationseditor, mit dem Sie AppCmd-Skripte generieren aus einer bestehenden Konfiguration.
Um AppCmd in WiX zu integrieren, müssen Sie für jeden Befehl zwei benutzerdefinierte Aktionen erstellen und planen. Allgemeine Informationen finden Sie im WiX v3 Handbuch dieses Verfahren zu dokumentieren und ich habe unten ein konkretes Beispiel beigefügt.
Zunächst müssen Sie eine Sofortaktion einrichten, um die Befehlszeile in einer Eigenschaft zu speichern:
<CustomAction
Id="CreateAppPool_Cmd"
Property="CreateAppPool"
Execute="immediate"
Value=""[WindowsFolder]system32\inetsrv\APPCMD.EXE" add apppool /name:"[APP_POOL_NAME]"" />
Als nächstes richten Sie eine aufgeschobene Aktion ein, die sich auf diese Eigenschaft bezieht:
<CustomAction
Id="CreateAppPool"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="ignore"
Impersonate="no"/>
Und schließlich müssen Sie diese Termine festlegen. Die sofortige Aktion, die die Eigenschaften festlegt, scheint gut nach InstallFinalize zu funktionieren, und die aufgeschobene Aktion funktioniert nach InstallFiles. Ich bin noch nicht so weit gekommen, Rollback-Aktionen zu entwickeln.
MapGuide Open Source nutzt diese Methode ausgiebig; Sie können die CA-Planung in unserem MapGuide.wxs Datei und die CA-Definition in unserer IIS7.wxs archivo.
0 Stimmen
Nun, leider wird die IIS-Erweiterung von IIS7 noch nicht unterstützt.