1

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

**

"C:\windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command "。'D:\a_temp\5f91c58a-381d-4c41-9969-3038116adefa.ps1'" & :术语“MyProject.exe”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。在 D:\a_temp\5f91c58a-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 
4

2 回答 2

1

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

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 

构建结果:

在此处输入图像描述

在此处检查您的路径:

在此处输入图像描述

于 2021-03-16T09:19:33.607 回答
0

您可以使用 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

于 2021-03-16T07:34:15.127 回答