2009-12-08 13 views
7

Lo que quiero es un archivo. Puedo hacer doble clic para ejecutar el proceso de compilación requerido usando psake.¿Cómo usar psake de un archivo por lotes?

Soy nuevo en psake y PowerShell así que sea amable :-).

Lo que tenemos ahora son 3 archivos:

de archivos 1: Build.bat

PowerShell -ExecutionPolicy Unrestricted -File .\Build.ps1 %1 

Archivo 2: Build.ps1

Import-Module .\psake.psm1 
Invoke-psake .\BuildTasks.ps1 $args 

Archivo 3: BuildTasks.ps1

task default -depends Verify, Joe 

task Verify { 
    write-host "hello from Verify!" 
} 

task Joe { 
    write-host "hello from Joe" 
} 

¿Hay alguna forma de fusionarse? Build.ps1 y BuildTasks.ps1 en un archivo?

Respuesta

8

Usted debe ser capaz de hacer esto con

powershell -Command "& {Import-Module .\psake.psm1; Invoke-psake .\BuildTasks.ps1 %*}" 

que se deshace del archivo build.ps1.

+0

Johannes. Montones de gracias. Solo una solución. Se requiere% 1 en lugar de $ args. PowerShell -ExecutionPolicy Sin restricciones -Command "& {Import-Module. \ Psake.psm1; Invoke-psake. \ BuildTasks.ps1% 1}" –

+0

Eep, ya lo tiene. Lo siento. – Joey

1

Psake viene con un script de powershell "psake.ps1" que envuelve la llamada para usted. Parece que:

import-module .\psake.psm1 
invoke-psake @args 
remove-module psake 

Así que la secuencia de comandos por lotes parece

powershell {path-to-module}\psake.ps1 .\buildTasks.ps1 
+0

el archivo psake.ps1 que mencionó funciona bien para pasar tareas a la llamada invocar-invocar, pero en el momento en que intentas pasar hashtables (los argumentos -parameters y -properties) falla. Al menos no he podido hacer que funcione. – Jimit

Cuestiones relacionadas