如何在 Azure Devops 的任务中 运行 带有参数的 exe?

How to run an exe with Parameters in a task in Azure Devops?

我想知道我们是否有办法 运行 Azure devops 中的 exe 并为此传递所需的参数。我正在使用下面的任务“PowerShell”,它给了我错误

**

"C:\windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'D:\a_tempf91c58a-381d-4c41-9969-3038116adefa.ps1'" & : The term 'MyProject.exe' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At D:\a_tempf91c58a-381d-4c41-9969-3038116adefa.ps1:5 char:3"

**

下面是在 YAML 中创建的任务。

- task: PowerShell@2
  displayName: Execute .exe file with parameters
  inputs:
    targetType: 'inline'
    script: |
      [String]$myrev = $Env:BUILD_BUILDNUMBER
      $args = @($myrev)
      & 'MyProject.exe' $args

提前感谢您的回复。


更多信息,尝试访问创建构建的路径。在访问 运行 exe 的路径之前,我们正在构建项目并将其保存在默认的 Azure 构建目录中。 仍然是同样的错误,但有完整的路径。

- task: MSBuild@1
  inputs:
    solution: '**/*.csproj'
    clean: true

- task: PowerShell@2
  displayName: Execute .exe file with parameters
  inputs:
    targetType: 'inline'
    script: |
      [String]$myrev = $Env:BUILD_BUILDNUMBER
      $args = @($myrev)
      & '$(Build.SourcesDirectory)\MyProject\bin\Release\MyProject.exe' $args 

您可以使用 Start-Process 执行带参数的 .exe 文件 (https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-7.1)

在您的代码中,它似乎找不到 .exe 文件。首先检查 .exe 文件是否确实存在(您可以使用 Get-ChildItem 获取当前工作目录中所有文件的列表)

BR

您确定您的应用程序可以在当前路径中访问吗?检查您的文件夹内容:

trigger:
- master

pool:
  vmImage: windows-2019

steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      & cmd /c dir . 
    

更新:

您的解决方案应该有效。测试示例:

trigger:
- master

pool:
  vmImage: windows-2019

steps:
- task: VSBuild@1
  inputs:
    solution: 'ConsoleApp\ConsoleApp.sln'
    platform: 'Any CPU'
    configuration: 'Release'
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      [String]$myrev = $(Build.BuildNumber)      
      $args = @($myrev)
      & '$(Build.SourcesDirectory)\ConsoleApp\ConsoleApp\bin\Release\ConsoleApp.exe' $args 

构建结果:

在此处检查您的路径: