PSAKE powershell&执行任务未运行

Chr*_*elt 1 powershell build psake

试图让PSAKE脚本工作.似乎任务没有执行其中的功能?

我有2个文件

-- default.ps1 --
Import-Module "C:\dev\Phoenix\trunk\Build\BuildScripts\include.ps1"
Import-Module "C:\Software\PSAKE\JamesKovacs-psake-b0094de\psake.psm1"
Invoke-psake "C:\dev\Phoenix\trunk\Build\BuildScripts\build.ps1"
remove-module psake


-- build.ps1 --
$framework = '4.0'

properties {
    $root_dir = 'c:\dev\Phoenix\trunk\'
    $integration_deploy_dir = '\\Server025\Phoenix_IntegrationTests\'
    $build_scripts_dir = '$root_dir\Build\BuildScripts'
    $test_dir =  Join-Path $root_dir '\Tests\Core.UnitTests\bin\Debug'
    $dll = Join-Path $test_dir 'Phoenix.Core.UnitTests.dll'
} 


task default -depends Test

task MsBuild {  exec { msbuild /version }}

task Test -depends Deploy
{
    Write-Host "Start task Test"
Add-PSSnapIn Gallio
Write-Host "TEST --  $dll" 
Test-Gallio $test_dir Release x64 $dll "Core.UnitTests"     ## FYI - call to include func
Write-Host "End task Test"
}

task Deploy
{
Write-Host "Start task deploy"
Write-Host "Deploying to integration server"
copy $root_dir"\Sites" $integration_deploy_dir -Recurse -Force
Write-Host "End task deploy"    
}
Run Code Online (Sandbox Code Playgroud)

目前它似乎只是"打印出"任务中列出的东西而没有实际做任何事情.我错过了什么?谢谢

对不起忘了提到我真的只想让COPY方法先工作 - thx


谢谢你的帮助 - 我提出了你所有的建议,但仍然没有运气.

如果我把代码'内联'而不是PSAKE任务中的代码运行正常.

我现在有这个

-- default.ps1
Import-Module C:\dev\Phoenix\trunk\Build\BuildScripts\include.ps1
Import-Module C:\Software\PSAKE\JamesKovacs-psake-b0094de\psake.psm1
Invoke-psake C:\dev\Phoenix\trunk\Build\BuildScripts\build.ps1
remove-module psake
Run Code Online (Sandbox Code Playgroud)

- build.ps1 $ framework ='4.0'

properties {
$root_dir = 'c:\dev\Phoenix\trunk'
$sites_dir = 'c:\dev\Phoenix\trunk\sites'
$integration_deploy_dir = '\\Vsydnweb025\Phoenix_IntegrationTests\'
$build_scripts_dir = "$root_dir\Build\BuildScripts"
}

task default -depends Deploy

task Deploy
{
Write-Host 'Start task deploy'
Write-Host 'Deploying to integration server'
copy $sites_dir $integration_deploy_dir -Recurse -Force
Write-Host 'End task deploy'
get-childitem $integration_deploy_dir -include *.svclog -recurse | foreach ($_)  {remove-item $_.fullname}
}
Run Code Online (Sandbox Code Playgroud)

输出如下:

Write-Host 'Start task deploy'
Write-Host 'Deploying to integration server'
copy $sites_dir $integration_deploy_dir -Recurse -Force
Write-Host 'End task deploy'
get-childitem $integration_deploy_dir -include *.svclog -recurse | foreach ($_) {remove-item $_.fullname}


Build Succeeded!

----------------------------------------------------------------------
Build Time Report
----------------------------------------------------------------------
Name   Duration        
----   --------        
Deploy 00:00:00.0006013
Total: 00:00:02.5335350
Run Code Online (Sandbox Code Playgroud)

因此,任务中的功能似乎只是被打印出来.

复制功能没有运行 - 也没有Piped .SvcLog文件删除

即我在屏幕上的预期

'开始任务部署'

代替

写主机'启动任务部署'

我会继续努力让它发挥作用.

谢谢你的帮助!!!

Chr*_*elt 7

有这个在谷歌组回答

开头"{"需要与"任务"功能位于同一行,因为它是一个作为参数传递给"任务"功能的脚本块.PS将您的代码解释为2个语句而不是1个语句.