如何解决PowerShell无法识别build.ps1文件如何在不进行硬编码的情况下定义路径
我有一个简单的yml文件,用于在Azure devops中运行管道。 在YML中,我已经定义了.build.ps1文件路径,但是我一直收到此错误
../ build.ps1:术语“ ../build.ps1”不能识别为cmdlet,函数,脚本文件或可操作文件的名称。 程序。检查名称的拼写,或者是否包含路径,请验证路径是否正确,然后重试
在这里我的build.ps1文件是C:\ Users \ David.Remin \ source \ repos \ branchName \ FirstBranch \ build.ps1
这是我在yml文件中的定义
powershell:../ build.ps1
我不想硬编码文件路径。因为每次都会不同。我只想提及文件名
#This is the YML file
trigger:
- master
pool:
vmImage: 'windows-latest'
steps:
- powershell: .\build.ps1 -target=Push -nugetUsername='$(nugetUsername)' -nugetPassword='$(nugetPassword)'
解决方法
最简单的方法是将build.ps1
文件推送到Azure devops存储库。
如果要运行本地build .ps1文件,首先需要指定private agent pool而不是Hosted agent池。其次,您需要在Yaml中指定powershell任务的workingDirectory
参数,否则默认值为$(Build.SourcesDirectory)
。
workingDirectory
:指定要在其中运行命令的工作目录。如果将其保留为空,则工作目录为$(Build.SourcesDirectory)。有关详细信息,请参阅此document。
您可以参考以下示例脚本:
pool: Default
jobs:
- job: Build
steps:
- task: PowerShell@2
inputs:
filePath: 'build.ps1'
workingDirectory: 'C:\Users\David.Remin\source\repos\branchName\FirstBranch'
arguments: '-target=Push -nugetUsername='$(nugetUsername)' -nugetPassword='$(nugetPassword)'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。