Die Generierung von Setup Paketen ist inzwischen ein fester Schritt in Vorbereitung auf das Release einer neuen Software Version. Für die Erstellung von Setup Paketen wird häufig Install Shield oder Windows Installer XML verwendet.
Für die Erzeugung von Setup Paketen mittels Windows Installer XML muss im Falle einer TFS On-Premise Installation nur das Windows Installer XML Setup auf allen Build Agenten der Build Infrastruktur ausgeführt werden. Bei Team Foundation Service stellt Microsoft sowohl die Team Foundation Service Instanz als auch die Build Infrastruktur in Form eines Hosted Build Controllers bereit. Eine Modifikation der Build Infrastruktur in Form einer Software Installation auf den Build Agenten ist dabei nicht möglich.
Um die Erstellung von Setup Paketen auf Basis von Windows Installer XML (WiX) dennoch zu ermöglichen, sind die folgenden drei Schritte nötig:
- Ablage der WiX Komponenten im Source Control
- Definition der WiX Tool Umgebung in der Build Definition
- Deaktivierung der ICE Validierung
Als erster Schritt müssen die WiX Komponenten in der TFS-Versionsverwaltung abgelegt werden, da auf den von Microsoft bereitgestellten Hosted Build Controller und den Build Agents keine Software installiert werden kann. Unsere Empfehlung ist die WiX Komponenten separat vom Source Code in einem dedizierten Tools Verzeichnis abzulegen (siehe Abbildung 1).
Als zweiter Schritt müssen die Einstellungen für die Erstellung der Setup Pakete durch MSBuild angepasst werden. MSBuild werden hierzu die folgenden zusätzlichen Parameter übergeben:
/p:WiXTargetsPath=..\..\..\Tools\WIX3.6\wix.targets;WixTasksPath=WiXTasks.dll;WixToolPath=..\..\..\Tools\WIX3.6;WixExtDir=..\..\..\Tools\WIX3.6
Diese Parameter können über den MSBuild Arguments Parameter im Process Tab der Build Definition angegeben werden (siehe auch Abbildung 2).
Im letzten Schritt muss zusätzlich noch die ICE Validierung in den Setup Projekten deaktiviert werden, da auf der gehosteten Build Infrastruktur kein Zugriff auf den Windows Installer Service besteht (siehe Abbildung 3).
Fazit
Mit Windows Installer XML können auch auf einem Hosted Build Controller Setup Pakete für im Team Foundation Service entwickelte Produkte erfolgreich erzeugt werden.