2016-07-09 14 views
5

Ich habe eine Lösung in Team Services gehostet und ihre Build-Dienste verwendet.Ausführen von WiX auf Build-Diensten in Visual Studio Team Services (war VS Online), Fehler LGHT0217, ICE01-07

Die Lösung enthält auch ein Projekt zum Erstellen einer MSI-Datei mit dem WiX-Toolset. Das funktioniert großartig lokal und ich habe die Toolset-Binärdateien in das Repository integriert, um es auch auf dem Build-Server wie beschrieben in this guide zu aktivieren.

Aber der Build-Prozess berichtet, das Projekt zu erstellen, zum Scheitern verurteilt:

light.exe (0, 0) Fehler beim Ausführen von ICE Aktion 'ICE01'. Die häufigste Ursache dieser Art von ICE-Fehler ist eine falsch registrierte Skript-Engine. Einzelheiten und wie Sie dieses Problem lösen können, finden Sie unter http://wixtoolset.org/documentation/error217/ . Das folgende Zeichenfolgenformat wurde von der externen UI-Nachrichtenprotokollfunktion nicht erwartet: "Auf den Windows-Installationsdienst konnte nicht zugegriffen werden. Dies kann auftreten, wenn das Windows -Installationsprogramm nicht ordnungsgemäß installiert ist. Wenden Sie sich an Ihr Supportpersonal ."

Die von ICE01 zu ICE07 wiederholt und wird von gefolgt:

light.exe (0, 0) Eine unerwartete Win32 Ausnahme mit dem Fehlercode 0x643 aufgetreten: Action - 'ICE09' Schwerwiegender Fehler bei Installation

Ich habe auch versucht, supress the validations as mentioned in this SO question. Dies ist im Grunde über die folgenden auf die Wix Projektdatei hinzufügen:

<PropertyGroup> 
    <SuppressValidation>true</SuppressValidation> 
</PropertyGroup> 

Das funktioniert - aber ich bin courious, ob dies der beste Weg ist, da es nicht ganz richtig fühlt. Wie kann WiX in Visual Studio Team Services korrekt ausgeführt werden?

Antwort

6

Das Unterdrücken der ICE-Validierung ist vorläufig notwendig, wenn Sie das WiX-Projekt mit VSTS Hosted Build Agent erstellen möchten, da der gehostete Build-Agent keine Administratorrechte bietet.

Wenn Sie mit Unterdrückung der Validierung unangenehm sind, können Sie immer die Property auf dem Build davon abhängig machen, einen Build-Agenten zu sein, so dass die Validierung als normal in einem Desktop-Build getan wird:

<PropertyGroup Condition=" '$(BuildingInsideVisualStudio)' != 'true' "> 
    <SuppressValidation>true</SuppressValidation> 
</PropertyGroup> 

Eine weitere Alternative Art und Weise ist deploying your own build agent und dann den Build-Agent mit Administratorrechten ausführen.

Übrigens wurde das WiX-Toolset auf VSTS Hosted Build Agent installiert. Sie müssen diese Anleitung daher nicht mehr befolgen, um das WiX-Toolset einchecken zu können. Die installierte Software finden Sie unter this list.

+1

Ist die Liste genau wie Version? WiX v3.7 ist 3,5 Jahre alt und enthält keine Entlastungen für DLL-Hijacking: http://www.joyofsetup.com/2016/07/04/wix-v3-10-3-released/. Wer eine sichere Version von WiX verwenden möchte, kann durch das Einchecken seiner Tools auf dem neuesten Stand bleiben. –

+0

@BobArnson Ja, es ist v3.7 installiert. Es gab bereits eine Benutzerstimme, um die Toolset-Version zu aktualisieren: https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/6875158-update-the-hosted-build-controller-to-wix -toolset –

+0

OBTW, sehe ich das WixV3.10 ist ab dem 16.01.2017 auf dem gehosteten Build-Server installiert. –