Psake Include方法不起作用

时间:2013-09-04 14:58:48

标签: powershell psake

我正在用Psake编写一个简单的PS脚本,当我尝试包含另一个ps1文件时,我遇到了问题。

    PS C:\CI> Include .\EnvSettings.ps1

我有这个例外

Exception calling "Peek" with "0" argument(s): "Stack empty."
At C:\Users\Julien\Documents\WindowsPowerShell\Modules\psake\psake.psm1:227 char:2
+     $psake.context.Peek().includes.Enqueue(($pa));
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : InvalidOperationException

我看了psake.psm1第227行,看看周围发生了什么

# .ExternalHelp  psake.psm1-help.xml
function Include {
    [CmdletBinding()]
    param(
        [Parameter(Position=0,Mandatory=1)][string]$fileNamePathToInclude
    )
    Assert (test-path $fileNamePathToInclude -pathType Leaf) ($msgs.error_invalid_include_path -f $fileNamePathToInclude)
    $psake.context.Peek().includes.Enqueue((Resolve-Path $fileNamePathToInclude));
}

代码成功传递Assert行。

问题来自Resolve-Path $ fileNamePathToInclude,它什么都不返回...... 如果我从命令行尝试它,它可以正常工作。

以前有人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:3)

包含文件的方式不是Include .\EnvSettings.ps1,而只是“点源”文件:

. .\EnvSettings.ps1