Я использую конвейер выпуска Azure DevOps для развертывания приложения WPF.
В CI у меня есть задача копирования файлов с целью создать каталог build.artifactstagingdirectory.
В содержание я включаю:
- src \ SolutionDirectory \ ProjectDirectory \ bin \ $ (BuildConfiguration) **
- src \ SolutionDirectory \ ProjectDirectory \ Release.nuspec
- packages \ 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 в фоновом режиме, но поскольку белка является асинхронной (мне так сказали, и, просматривая некоторый фрагмент кода, похоже, именно так), она сразу же завершается и только **. нупкг. и ** - full.nupkg созданы. Поэтому я чувствую, что он начинает преобразовывать пакет в версию с белками, но останавливается после завершения команды powershell.
Этого не происходит, когда я вручную перевыпускаю через powershell на диске сервера. Я вижу, как файлы внутри моего рабочего каталога генерируются в следующем порядке
**. Nupkg
** - full.nupkg
удаляет **. nupkg
создает Setup, exe
необязательный Setup.msi
Если кому-то понадобится дополнительная информация, я был бы рад поделиться. Кто-нибудь знает, достижимо ли это?
Ссылка на открытый выпуск GitHub