我有一个powershell脚本MyScript.ps1,它在我的本地计算机上运行没有任何问题。
$var1 = "var1"
$var2 = "var2"
$result = Function-A -var1 $var1 -var2 $var2
Function-A{
param(
[string] $var1,
[string] $var2
)
#some logics here.
}
我在Azure DevOps Yaml脚本中通过任务AzurePowerShell@5调用此脚本
steps:
- task: AzurePowerShell@5
displayName: 'Execute PS script'
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
inputs:
azureSubscription: '${{ variables.azureConnection }}'
scriptType: 'FilePath'
scriptPath: '$(Build.SourcesDirectory)/MyScript.ps1'
azurePowerShellVersion: 'LatestVersion'
我不断收到以下错误:
[error]术语“Function-A”未被识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写;如果包含路径,请验证路径是否正确,然后重试。
[调试]已处理:##vso[task.logissue type=error]术语“Function-A”未被识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写;如果包含路径,请验证路径是否正确,然后重试。
[debug]退出代码:1
阅读了一下,我想我可以通过将它们分组到一个模块中,然后以这种方式调用它们来解决这个问题。然而,对于像这样简单的事情来说,这是一个很大的开销...请给我指出正确的方向。
1条答案
按热度按时间cbjzeqam1#
/咯咯笑
愚蠢的ADO,所以所有的函数都必须在调用之前在文件中声明。