首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PSAKE powershell &未运行执行任务

PSAKE powershell &未运行执行任务
EN

Stack Overflow用户
提问于 2011-09-21 04:45:04
回答 2查看 2K关注 0票数 1

试着让PSAKE脚本正常工作。任务似乎没有执行其内部的功能?

我有两个文件

代码语言:javascript
复制
-- 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"    
}

目前,它似乎只是“打印”任务中列出的内容,而没有真正做任何事情。我遗漏了什么?谢谢

对不起,忘了提一下,我真的只是想让复制方法首先起作用。

谢谢你的帮助-我已经提出了你所有的建议,但还是没有运气。

如果我将代码放在“内联”中,而不是在PSAKE任务中,则代码运行良好。

我现在有了这个

代码语言:javascript
复制
-- 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‘

代码语言:javascript
复制
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}
}

这方面的产出如下:

代码语言:javascript
复制
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

因此,任务中的功能似乎正在被打印出来。

复制函数没有运行,管道化的.SvcLog文件也没有删除。

在屏幕上我希望

启动任务部署

而不是

写-主机‘启动任务部署’

我一直在努力让它起作用。

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-26 04:39:59

这个在google组中有答案吗?

开头的"{“需要与”任务“函数位于同一行,因为它是作为参数传递给”任务“函数的scriptblock。PS是将代码解释为2条语句,而不是1条语句。

票数 7
EN

Stack Overflow用户

发布于 2011-09-21 08:04:41

我没有对PSAKE做任何事情,但关于Powershell,需要“修复”以下内容:

代码语言:javascript
复制
$root_dir = 'c:\dev\Phoenix\trunk\'

删除尾随“\”,就像将该变量与其他字符串(以“\”开头)连接时一样,您将得到一个双“\”。

另外:

代码语言:javascript
复制
$build_scripts_dir = '$root_dir\Build\BuildScripts'

这应该有双引号,以确保正确展开变量:

代码语言:javascript
复制
$build_scripts_dir = "$root_dir\Build\BuildScripts"

也许纠正这些,看看你是否有更多有意义的错误?

我怀疑您还需要从脚本/模块调用中删除双引号:

代码语言:javascript
复制
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

关于如何从脚本内部调用脚本,...and请参见这里。您使用的双引号将调用转换为字符串(不会执行)。如果您需要使用双引号(即您的路径包含空格),则需要在路径前面加上调用操作符'&':

代码语言:javascript
复制
& "C:\dev\Phoenix\trunk\Build\BuildScripts\build.ps1"

显然,您不需要这样做,因为您的路径没有空格。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7494726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档