Squirrel.windows 1.7.8-1.9.0 невозможно создать файл setup.exe и releases в -releasedir

Я использую конвейер выпуска Azure DevOps для развертывания приложения WPF.

В CI у меня есть задача копирования файлов с целью build.artifactstagingdirectory В содержание я включаю: - src \ SolutionDirectory \ ProjectDirectory \ bin \ $ (BuildConfiguration) ** - src \ SolutionDirectory \ ProjectDirectory \ Release.nuspec - пакеты \ squirrel.windows.1.8.0 **

На компакт-диске у меня есть два скрипта PowerShell. Один для пакетной операции, а другой для освобождения

Упаковка

$exePath = "$(System.DefaultWorkingDirectory)/_ArtifactName/drop/src/SolutionDirectory/ProjectDirectory/bin/Release/Project.exe"

$version =$([System.Diagnostics.FileVersionInfo]::GetVersionInfo($exePath).FileVersion)

nuget pack .\Release.nuspec -Version $version -Properties Configuration=Release -OutputDirectory .\bin\Release\ -BasePath .\bin\Release\

Releasify

Set-Alias squirrel "$(System.DefaultWorkingDirectory)/_ArtifactName/drop/packages/squirrel.windows.1.**/tools/squirrel.exe"

$exePath = "$(System.DefaultWorkingDirectory)/_ArtifactName/drop/src/SolutionDirectory/ProjectDirectory/bin/Release/Project.exe"

$version =$([System.Diagnostics.FileVersionInfo]::GetVersionInfo($exePath).FileVersion )

squirrel --releasify "$(System.DefaultWorkingDirectory)/_ArtifactName/drop/src/SolutionDirectory/ProjectDirectory/bin/Release/Project.$version.nupkg" --no-msi --releaseDir $(DevDeployDir)

DevDeployDir - это переменная, указывающая на каталог развертывания локального сервера.

Я могу освободить только .nupkg. RELEASES и Setup.exe отсутствуют, я также попытался добавить команду Start-Sleep в конце, потому что я думал, что процесс освобождения может останавливаться слишком рано.

Это похоже на то, что задача PowerShell в Azure DevOps начинает запускать освобождение Squirrel в фоновом режиме, но поскольку squirrel является асинхронным (мне сказали об этом, и я просматривал некоторый фрагмент кода, похоже, так), он сразу же завершается, и только * * .nupkg. и ** - full.nupkg созданы. Итак, я чувствую, что он начинает преобразовывать пакет в версию с белкой, но он останавливается после выхода команды powershell.

Этого не происходит, когда я вручную освобождаю через PowerShell на диске сервера Я вижу, что файлы внутри моего рабочего каталога создаются в следующем порядке

**. nupkg ** - full.nupkg удаляет **. nupkg создает Setup, exe необязательный Setup.msi

Если кому-то понадобится дополнительная информация, я буду рад поделиться. Кто-нибудь знает, возможно ли это?

Ссылка на открытый вопрос GitHub

для меня это произошло после изменения файла проекта .rc, я добавил динамический номер сборки в версию 1.1.1.20, которая является последним номером, я изменил его на ноль, и проблема решена, я думаю, белка не поддерживает более трехзначный номер версии

Mahdi Khalili 31.08.2019 09:52

если вы прочитаете файл журнала белка, который находится внутри каталога белка SquirrelSetup.log, вы увидите, что не так с кодом, который вы выполнили

Mahdi Khalili 31.08.2019 10:00
2
2
744
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

@ Махди Халили

Да, это должна быть семантическая версия, и это не во время установки, а во время выпуска, поэтому я не думаю, что журнал squirrel здесь не будет работать.

Мы просто использовали параметры ожидания и передачи в оболочку PowerShell для процесса освобождения. Потом все заработало.

Другие вопросы по теме