O WiX é um conjunto de ferramentas desenvolvido pela Microsoft e disponibilizado sob uma licença livre, a Common Public License.
As ferramentas que o pacote inclui estão já bastante maduras e são orientadas principalmente a developers de ficheiros MSI com um sólido conhecimento da tecnologia Windows Installer. Na verdade, quando comecei a trabalhar com este conjunto de ferramentas foi difícil não estar constantemente a ir procurar informação ao Windows Installer SDK.
A minha primeira abordagem a trabalhar com este conjunto de ferramentas foi aquela que tenho reparado ser a mais comum: Fazer um MSI utilizando o Visual Studio 2003 e depois utilizar o decompilador incluido nas ferramentas (dark) para gerar um ficheiro wxs que pode ser compilado e linkado pelo compilador (candle) e o linker (light). Esta é uma técnica útil para quem pretende começar a se familiarizar com a semântica dos scripts WiX. Mas rapidamente verifiquei que com esta abordagem não chegaria onde pretendia chegar e é difícil progredir sem conhecer os internals da tecnologia Windows Installer, pelo que o meu passo seguinte foi familiarizar-me com o schema do WiX e estudar o Windows Installer SDK.
O projecto MSI original que fiz no Visual Studio 2003 era um Web Setup. Ao decompilar com o dark o MSI resultante, as acções correspondentes a montar a virtual directory se encontram encapsuladas num binário externo e que, em termos de script, resultam nalgumas dezenas de linhas de script, modificando tabelas do sistema e executando outras acções bastante cripticas.
Na verdade, o schema do WiX tem já incorporadas um conjunto de Custom Actions que automatizam e simplificam um conjunto de acções comuns em ficheiros de setup. Seguindo o schema é possível criar uma virtual directory ou um novo web site, com qualquer configuração que se pretenda através de um conjunto mínimo de instruções.
Portanto o meu conselho para quem pretenda comçar a trabalhar com esta tecnologia é o de se familiarizarem com o schema e com o Windows Installer SDK. A documentação do WiX não é muito exaustiva, à excepção do schema. Toda a restante documentação que necessitam encontra-se no SDK.
Posted
31-10-2004 16:58
por
José Almeida