h1

Cruise Control.Net e projetos C/C++

Agosto 13, 2007

Nos últimos meses, tenho utilizado bastante o Cruise Control para automatizar a compilação dos projetos existentes na empresa onde eu trabalho. Enquanto estava só compilando projetos .Net tudo estava lindo e
maravilhoso, mas quando comecei a ter que integrar a compilação de projetos C/C++ a coisa ficou feia.

Como os scripts nant que compilam esses projetos, utilizam as variáveis de ambiente do Visual Studio,
definidas no arquivo “vcvarsall.bat”. Quando a compilação era disparada de dentro do Cruise Control.Net ocorriam erros,
devido não ser possível encontrar as bentidas variáveis de ambiente.

O problema é que eu não consegui achar um meio de fazer com que o serviço do Cruise Control tivesse acesso as variáveis de ambientes
definidas pelo arquivo batch do Visual Studio.

O jeito foi seguir o aconselhado no site do Cruise Control.Net e seguir a vida. Até que esta semana conversando com o Wanderley, ele deu a idéia de utilizar o Prog2Svc feito pelo Fernando para fazer com que o serviço do Cruise Control tivesse acesso as variáveis de ambiente.

Dessa forma o arquivo batch que inicializa o serviço do Cruise Control ficou dessa maneira:

call "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\vcvarsall.bat" x86
cd "C:\\Program Files\\CruiseControl.NET\\server"
"C:\\Program Files\\CruiseControl.NET\\server\\CCNET.exe" -remoting:on

E a linha de comando para fazer com que o Prog2Svc registre o arquivo batch como serviço foi o seguinte:

c:\\windows\\system32\\Prog2Svc.exe -add C:\\windows\\system32\\CCNetServer.Bat

O único problema é que foi necessário alterar o usuário que roda o serviço criado pelo Prog2Svc de SYSTEM
para um usuário local da máquina de compilação, por ocorrer um problema de compilação nos projetos C/C++ “Program Database Mismatch”
que é descrito aqui.

Deixe um comentário