CruiseControl.Net e NAnt Desenvolver Problem
-
03-07-2019 - |
Pergunta
Estou configurando um servidor CruiseControl.net pela primeira vez. Minha equipe já usa scripts de construção NAnt, por isso estamos apenas apontando o servidor em scripts e deixando NAnt fazer todo o trabalho.
Como você pode ver, é muito simples:
<project name="ChannelIP">
<tasks>
<nant>
<executable>C:\Program Files\nant-0.86-beta1\bin\nant.exe</executable>
<baseDirectory>D:\mypath</baseDirectory>
<buildFile>D:\mypath\myNAnt.build</buildFile>
<targetList>
<target>build</target>
</targetList>
</nant>
</tasks>
</project>
O problema é que quando eu executá-lo sob CC, eu recebo o seguinte erro:
Chamada de função falhou. Expressão: $ {Framework :: get-estrutura de diretório ( 'net-3.5')} / MSBuild.exe
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Microsoft .NET Framework 3.5 (net-3.5) não está instalado, ou não corretamente configurado. Objecto referência não definida para uma instância de um objeto.
Eu, de fato, usar o $ {framework :: get-estrutura de diretório ( 'net-3.5')} variável para obter o caminho para MSBuild.exe; no entanto, esse código nunca falhou antes. Posso até RDP para o servidor usando a conta de usuário que CC está sendo executado em e execute o arquivo NAnt construir diretamente e ele funciona muito bem.
Por que é que este arquivo contrário excelentes falhar apenas quando CC executa-lo.
NOTA -CC está sendo executado na mesma máquina que eu normalmente executar os scripts de construção de
Solução
Isso soa como um problema NAnt, houve alguns problemas com ele e .NET 3.5. Qual versão do NAnt você está usando?
Além disso, você já viu Usando 0.86 beta 1 for .NET 3.5 ? O cara tem a mesma mensagem de erro lançada por NAnt. A solução sugerida era usar a compilação mais recente noturno.
Outras dicas
O serviço CC provavelmente não é executado sob uma conta com as permissões adequadas. Você já tentou correr CC usando a linha de comando (que será executado como o usuário conectado) para ver se você tem o mesmo problema?