2009-12-08 18 views
7

Quello che voglio è un file che posso fare doppio clic che eseguirà il processo di compilazione richiesto usando psake.Come usare psake da un file batch?

Sono nuovo di psake e PowerShell quindi sii gentile :-).

Quello che ho adesso sono 3 file:

file 1: build.bat

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

File 2: Build.ps1

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

File 3: BuildTasks.ps1

task default -depends Verify, Joe 

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

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

C'è comunque un modo per unire Build.ps1 e BuildTasks.ps1 in un unico file?

risposta

8

Si dovrebbe essere in grado di fare questo con

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

che si sbarazza del file build.ps1.

+0

Johannes. Grazie mille. Solo una correzione. È richiesto% 1 invece di $ args. PowerShell -ExecutionPolicy Unrestricted -Command "& {Import-Module. \ Psake.psm1; Invoke-psake. \ BuildTasks.ps1% 1}" –

+0

Eep, giusto sei. Scusate. – Joey

1

Psake viene fornito con uno script PowerShell "psake.ps1" che avvolge la chiamata per voi. Sembra che:

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

Così il vostro script batch assomiglia

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

il file psake.ps1 che hai citato funziona bene per il passaggio di compiti alla chiamata invoke-psake ma nel momento in cui tenti di passare a hashtables (gli argomenti -parameters e -properties) fallisce. Almeno non sono stato in grado di farlo funzionare. – Jimit

Problemi correlati