2009-12-08 6 views
7

Was ich will ist eine einzige Datei, die ich doppelklicken kann, die den erforderlichen Build-Prozess mit PSAKE ausführen wird.Wie verwende ich psake aus einer Batch-Datei?

Ich bin neu zu psake und PowerShell also sei sanft :-).

Was ich jetzt habe, sind drei Dateien:

Datei 1: build.bat

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

File 2: Build.ps1

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

Datei 3: BuildTasks.ps1

task default -depends Verify, Joe 

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

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

Gibt es sowieso zu verschmelzen Build.ps1 und BuildTasks.ps1 in einer Datei?

Antwort

8

sollten Sie in der Lage sein, dies zu tun mit

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

, die der build.ps1 Datei entledigt.

+0

Johannes sieht. Tausend Dank. Nur eine einzige Lösung. % 1 wird anstelle von $ args benötigt. PowerShell -ExecutionPolicy Unrestricted -Command "& {Import-Modul. \ Psake.psm1; Invoke-psake. \ BuildTasks.ps1% 1}" –

+0

Eep, richtig Sie sind. Es tut uns leid. – Joey

1

Psake kommt mit einem Powershell-Skript "psake.ps1", das den Anruf für Sie umschließt. Es sieht aus wie:

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

So Batch-Skript wie

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

Die Datei psake.ps1, die Sie erwähnt haben, eignet sich gut zum Übergeben von Tasks in den Aufruf invoke-psake, aber in dem Moment, in dem Sie versuchen, Hashtabellen (die Argumente -parameters und -properties) zu übergeben. Zumindest konnte ich es nicht zur Arbeit bringen. – Jimit

Verwandte Themen