Pregunta

Estoy configurando un servidor CruiseControl.net por primera vez. Mi equipo ya utiliza los scripts de construcción NAnt, por lo que solo estamos apuntando el servidor a los scripts y dejando que NAnt haga todo el trabajo.

Como puedes ver, es bastante simple:

<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>

El problema es que cuando lo ejecuto en CC, obtengo el siguiente error:

  

Falló la llamada a la función.   Expresión:   $ {framework :: get-framework-directory ('net-3.5')} / msbuild.exe

          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     

Microsoft .NET Framework 3.5 (net-3.5)   no está instalado, o no está correctamente   configurado Referencia de objeto no establecida   a una instancia de un objeto.

De hecho, uso la variable $ {framework :: get-framework-directory ('net-3.5')} para obtener la ruta a msbuild.exe; Sin embargo, este código nunca ha fallado antes. Incluso puedo hacer RDP en el servidor usando la cuenta de usuario con la que se está ejecutando CC y ejecutar el archivo de compilación NAnt directamente y funciona bien.

¿Por qué es que este archivo fino de otro modo falla solo cuando CC lo ejecuta?

NOTA -CC se ejecuta en la misma máquina en la que normalmente ejecuto los scripts de compilación desde

¿Fue útil?

Solución

Esto suena como un problema de NAnt, hubo algunos problemas con él y .NET 3.5. ¿Qué versión de NAnt estás usando?

También, ¿has visto Uso de 0.86 beta 1 para .NET 3.5 ? El tipo tiene el mismo mensaje de error lanzado por NAnt. La solución sugerida fue utilizar la última versión nocturna.

Otros consejos

Es probable que el servicio CC no se esté ejecutando bajo una cuenta con los permisos adecuados. ¿Ha intentado ejecutar CC usando la línea de comandos (que se ejecutará como el usuario que inició sesión) para ver si tiene el mismo problema?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top