Как запустить Squirrel Releasify в Visual Studio Team Services?

Я настраиваю процесс сборки настольного приложения в Visual Studio Team Services (т. е. Visual Studio Online) и хотел бы автоматически запускать команду Releasify установщика белки в некоторых случаях сборки. До сих пор я создал следующий сценарий powershell, который я запускаю после сборки проекта.

Write-Host "Hello World from $Env:AGENT_NAME."
Write-Host "Current Path  $env:Agent_BuildDirectory"
Write-Host "Build Number  $env:Build_BuildNumber"
$squirrel = "$env:Agent_BuildDirectory\packages\squirrel.windows.*\tools\Squirrel.exe"
.$squirrel -releasify "$build_dir\MyNupkg.nupkg"

Это приводит к следующему сообщению об ошибке

2015-12-29T12:57:48.5701506Z ##[error]. : The term 'C:\a\1\packages\squirrel.windows.*\tools\Squirrel.exe' is not recognized as the name of a cmdlet, 
2015-12-29T12:57:48.5701506Z ##[error]function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the 
2015-12-29T12:57:48.5701506Z ##[error]path is correct and try again.
2015-12-29T12:57:48.5701506Z ##[error]At C:\a\1\s\MyDir\Release.ps1:5 char:2
2015-12-29T12:57:48.5701506Z ##[error]+ .$squirrel -releasify "$build_dir\MyNupkg.nupkg"
2015-12-29T12:57:48.5701506Z ##[error]+  ~~~~~~~~~
 2015-12-29T12:57:48.5701506Z ##[error]    + CategoryInfo          : ObjectNotFound: (C:\a\1\packages...ls\Squirrel.exe:String) [], CommandNotFoundException
2015-12-29T12:57:48.5701506Z ##[error]    + FullyQualifiedErrorId : CommandNotFoundException
2015-12-29T12:57:48.5701506Z ##[error] 
2015-12-29T12:57:48.5701506Z ##[error]Process completed with exit code 0 and had 1 error(s) written to the error stream.

Как я могу исправить эту ошибку? Есть ли лучший подход? Почему powershell не может запустить программу, которая находится в этом каталоге?


person PlTaylor    schedule 29.12.2015    source источник


Ответы (2)


Ошибка довольно ясна:

Он не находит файл по указанному вами пути, а именно: C:\a\1\packages\squirrel.windows.*\tools\Squirrel.exe

Исправьте путь, чтобы он указывал на правильную папку.

person Daniel Mann    schedule 29.12.2015

«$env:Agent_BuildDirectory» — это локальный путь в агенте, где создаются все папки для данного определения сборки. Это не полный путь для решения вашего проекта. Вам нужно использовать путь "$env:BUILD_SOURCESDIRECTORY\\" для перехода к папке пакетов. Поэтому обновите скрипт следующим образом, чтобы решить вашу проблему:

$squirrel = "$env:BUILD_SOURCESDIRECTORY\<project name>\packages\squirrel.windows.*\tools\Squirrel.exe"
person Eddie Chen - MSFT    schedule 30.12.2015