2016-07-09 29 views
5

Ho una soluzione ospitata in Team Services e utilizzo dei suoi servizi di compilazione.Esecuzione di WiX sui servizi di compilazione in Visual Studio Team Services (era VS Online), Errore LGHT0217, ICE01-07

La soluzione include anche un progetto per creare un file MSI utilizzando il set di strumenti WiX. Questo funziona perfettamente a livello locale e ho integrato i file binari del toolset nel repository per abilitarlo sul build server come descritto in in this guide.

Ma il processo di compilazione riporta il progetto fallisca per costruire:

light.exe (0, 0) Errore durante l'esecuzione dell'azione ICE 'ICE01'. La causa più comune di di questo tipo di errore ICE è un motore di script registrato in modo errato. Vedi http://wixtoolset.org/documentation/error217/ per dettagli e come risolvere questo problema. Il seguente formato di stringa non era previsto dal registratore di messaggi dell'interfaccia utente esterna: "Impossibile accedere al servizio di installazione di Windows .Per verificare se il programma di installazione di Windows non è installato, contattare il personale di supporto per assistenza.".

Questo si ripete da ICE01 a ICE07 ed è seguito da:

light.exe (0, 0) Un'eccezione Win32 inaspettato con il codice di errore 0x643 è verificato: Azione - Fatal error 'ICE09' durante installazione

Ho anche provato a supress the validations as mentioned in this SO question. Questo è fondamentalmente di aggiungere quanto segue al file di progetto Wix:

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

Questo funziona - ma sono curiosi se questo è il modo migliore in quanto non si sente perfettamente ragione. Qual è il modo corretto di eseguire WiX in Visual Studio Team Services?

risposta

6

Sopprimere la convalida ICE è il lavoro da fare per ora se si desidera creare il progetto WiX con VSTS Hosted Build Agent poiché l'agente di build ospitato non fornisce i privilegi di amministratore.

Se sei a disagio con la soppressione di convalida, si può sempre fare il PropertyGroup subordinata alla compilazione essere su una di compilazione, in modo che la convalida è fatto come normale in un accumulo desktop:

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

Un altro modo alternativo è deploying your own build agent e quindi eseguire l'agente di build con il permesso di amministratore.

A proposito, il set di strumenti WiX è stato installato su VSTS Hosted Build Agent, quindi non è più necessario seguire questa guida per controllare il set di strumenti WiX. Fare riferimento a this list per il software installato.

+1

L'elenco è preciso rispetto alla versione? WiX v3.7 ha 3,5 anni e non contiene mitigazioni per il dirottamento della DLL: http://www.joyofsetup.com/2016/07/04/wix-v3-10-3-released/. Chiunque desideri utilizzare una versione sicura di WiX può rimanere aggiornato controllando i propri strumenti. –

+0

@BobArnson Sì, è installato v3.7. C'era già una voce utente qui per richiedere l'aggiornamento della versione del toolset: https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/6875158-update-the-hosted-build-controller-to-wix -toolset –

+0

OBTW, vedo che WixV3.10 è installato sul server di generazione ospitato a partire dal 16/01/2017. –