Usamos NAnt ampliamente para nuestro sistema de compilación. Recientemente, he escrito un par de PowerShell Cmdlets para realizar algunas cosas relacionadas con la base de datos. Al principio, la intención de estos Cmdlets era no para ejecutarse necesariamente dentro de nuestro proceso de compilación. Sin embargo, esto se ha convertido recientemente en una necesidad y nos gustaría ejecutar algunos de estos cmdlets de nuestro proceso de compilación basado en NAnt.¿Cuál es una buena manera de consumir un Cmdlet de PowerShell en un sistema de compilación NAnt?
Estos cmdlets están escritos en C# y tenemos un complemento para ellos (si eso es importante).
algunas ideas:
- exec utilizar la tarea de llamar PowerShell? (no estoy seguro de cómo funcionaría esto)
- Escriba una tarea NAnt personalizada que haga referencia y use el Cmdlet?
¿Cuál podría ser una buena forma de hacerlo?
Podrían aclarar su uso del signo? Sin una explicación, su respuesta se ve más o menos lo mismo que [la respuesta de VJ M] (http://stackoverflow.com/a/4311491/622391)? –
El ampersand es el operador de llamada en powershell. Lo siguiente es de la salida del comando 'get-help about_operators' en operadores especiales: & operador de llamadas Ejecuta un comando, script o bloque de script.El operador de llamada, también conocido como el "operador de invocación", le permite ejecutar comandos que están almacenados en las variables y representados por cadenas. Como el operador de llamada no procesa el comando , no puede interpretar los parámetros del comando. ' –
Para aclarar más, en mi experiencia, no incluirlo puede hacer que los argumentos sean procesados por powershell.exe en lugar del script o simplemente se pierdan en general. –