如何在本地托管代理中从我的管道调用应用程序?

How to invoke app from my pipeline in a locally hosted agent?

我已经创建了一个测试管道,它将与 Github 存储库一起使用来构建一个简单的 C# 控制台应用程序。我还创建了我的本地代理,它在默认池中 运行s 并显示为 online。当我尝试 运行 一个看起来像这样的步骤时:

- script: signtool sign /sha1 ... /tr ... $(Build.ArtifactStagingDirectory)\MyApp.exe
  displayName: "Sign File"

我收到以下输出:

'signtool' is not recognized as an internal or external command,
operable program or batch file.
##[error]Cmd.exe exited with code '1'.

如何允许本地代理从主机工作站执行现有的 cmd 应用程序?

您可以在 YAML CmdLine@2 中使用实用程序任务,并遵循这样的模式,这是一个简单的回显脚本,可以在您的控制台中输出。

# Command line
# Run a command line script using Bash on Linux and macOS and cmd.exe on Windows
- task: CmdLine@2
  inputs:
    script: 'echo Write your commands here.' 
    #workingDirectory: # Optional
    #failOnStderr: false # Optional

你的尝试很好

- script: signtool sign ...
  displayName: "Sign File"

但请确保您位于正确的文件夹中。如果您已经构建了您的应用程序并将其放在代理上,请先找到它。例如检查日志以找到正确的路径。您还可以列出当前目录:

- script: |
    ls .
    signtool sign ...
  displayName: "Sign File"

请检查里面有什么。