2009-12-08 37 views
7

Những gì tôi muốn là một tập tin tôi có thể nhấp đúp vào đó sẽ chạy quá trình xây dựng yêu cầu bằng cách sử dụng psake.Làm thế nào để sử dụng psake từ một tập tin thực thi?

Tôi mới sử dụng psake và PowerShell vì vậy hãy nhẹ nhàng :-).

Những gì tôi có bây giờ là 3 file:

Tập 1: Build.bat

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

Tập 2: Build.ps1

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

Tập 3: BuildTasks.ps1

task default -depends Verify, Joe 

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

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

Có cách nào để hợp nhất Build.ps1 và BuildTasks.ps1 vào một tệp?

Trả lời

8

Bạn sẽ có thể làm điều này với

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

mà được thoát khỏi những tập tin build.ps1.

+0

Johannes. Cảm ơn đống. Chỉ cần một sửa chữa tất cả. % 1 là bắt buộc thay vì $ args. PowerShell -ExecutionPolicy Không giới hạn -Command "& {Import-Module. \ Psake.psm1; Gọi-psake. \ BuildTasks.ps1% 1}" –

+0

Eep, đúng vậy. Lấy làm tiếc. – Joey

1

Psake đi kèm với tập lệnh PowerShell "psake.ps1" kết thúc cuộc gọi cho bạn. Dường như:

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

Vì vậy, kịch bản hàng loạt của bạn trông như

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

tệp psake.ps1 mà bạn đã đề cập hoạt động tốt cho các tác vụ chuyển tiếp vào cuộc gọi gọi-psake nhưng thời điểm bạn cố chuyển qua hashtables (đối số -parameters và -properties) nó không thành công. Ít nhất tôi đã không thể làm cho nó hoạt động được. – Jimit

Các vấn đề liên quan