【问题标题】:Powershell script not recognizing file in Devops PipelinePowershell 脚本无法识别 Devops Pipeline 中的文件
【发布时间】:2022-01-03 14:18:07
【问题描述】:

我的 devops 存储库中有一个名为 functionapp.ps1 的 powershell 脚本,位于名为 Deploy 的文件夹中。

我的 yml 文件中有以下代码行:

  - task: PowerShell@2
    inputs:
      filePath: '$(Pipeline.Workspace)/Deploy/functionapp.ps1'

当阶段正在运行并到达此任务时,我收到以下错误:

##[错误]无效的文件路径“D:\a\1\Deploy\functionapp.ps1”。需要 .ps1 文件的路径。

我尝试使用filePath: '$(System.DefaultWorkingDirectory)/Deploy/functionapp.ps1'

我最终遇到了同样的错误。有人可以告诉我这里有什么问题吗?

【问题讨论】:

  • 你应该使用命令行任务来显示默认值'$(System.DefaultWorkingDirectory)'的值,以及repo中的文件夹结构。
  • @LeoLiu-MSFT 我尝试使用以下文件路径:'$(System.DefaultWorkingDirectory)/ExportServiceFunctionApp/Deploy/functionapp.ps1',但它仍然不起作用。
  • 正如我所问的,您需要使用命令行任务来显示默认值 '$(System.DefaultWorkingDirectory)' 的值,以及存储库中的文件夹结构。
  • @LeoLiu-MSFT 我测试了命令行任务。它表明工作目录具有以下名称: D:\a\1\s 我不知道 a\1\s 来自哪里。在这种情况下,我应该在 powershell 文件路径中更改什么?
  • @Noobie2021 我可以检查一下吗?您的管道是否肯定会检查您的源代码?如果不是,那将是解释问题所在的重要部分。

标签: powershell azure-devops azure-pipelines-build-task azure-pipelines-yaml


【解决方案1】:

下载源代码文件的默认目录是C:\agent_work\s 并且可以从内置变量$(Build.SourcesDirectory)中引用

因此,您需要在 powershell 任务中使用以下文件路径:

filePath: '$(Build.SourcesDirectory)/Deploy/functionapp.ps1'

你也可以使用

 filePath: '$(Pipeline.Workspace)/s/Deploy/functionapp.ps1'

如果自(主)存储库的签出步骤未定义自定义签出路径,或者签出路径是自存储库的多签出默认路径$(Pipeline.Workspace)/s/<RepoName>,则此变量的值将恢复为其默认值值,即$(Pipeline.Workspace)/s

可以从以下 URL 找到包含内置变量的列表:

https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml

【讨论】:

  • 非常感谢您的回答。正如您提到的第一种方式,我更改了文件路径,它也给了我以下错误:##[error]Invalid file path 'D:\a\1\s\Deploy\functionapp.ps1'。 .ps1 文件的路径是必需的。
  • 尝试在 powershell 脚本上设置您的工作文件夹。 workingDirectory: '$(Pipeline.Workspace)/s' 。还要确保文件名正确。您可以在执行实际 powershell 之前使用测试 powershell 创建目录列表。
  • 工作目录以以下文件夹 ExportServiceFunctionApp 结尾。但是,上面提到的 Deploy 不包含在该文件夹中。所以基本上在存储库中我有 3 个文件夹:ExportServiceFunctionApp、ExportServiceTests 和包含 powershell 脚本的部署文件夹。
  • 你认为我应该把powershell脚本和工作目录放在同一个文件夹吗?
  • 我尝试了所有这些方法,但没有任何效果。它不断给我同样的错误。有什么线索我该怎么办?
猜你喜欢
  • 1970-01-01
  • 2015-05-26
  • 2022-01-06
  • 2023-03-13
  • 2016-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
相关资源
最近更新 更多