Как я могу добавить свою версию сборки к имени папки во время процесса сборки? - PullRequest
0 голосов
/ 31 января 2019

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

Команда сборки, которая у меня есть, частично работает.Я могу получить номер версии в файл с именем tmpfile.Кажется, проблема заключается в чтении номера версии из этого файла в переменную.

if $(ConfigurationName) == Release (
    powershell "(Get-Item -path  $(TargetPath)).VersionInfo.ProductVersion" > tmpfile
    set /p VER=< tmpfile
    echo %VER% > fileversion
    set "DIRNAME=FilterUtilityApp%VER%"
    xcopy /s /y "$(TargetDir)*" "$(SolutionDir)%DIRNAME%\"
    xcopy /y "$(ProjectDir)Docs\*" "$(SolutionDir)%DIRNAME%\Docs\"
)

Я проверил строки, где я читаю и пишу VER, используя окно CMD, и команды работают, fileversion содержит номер версии.Когда я запускаю скрипт сборки, fileversion содержит «Echo on», что, как я предполагаю, означает, что VER пуст.Могут быть и другие проблемы с моей командой сборки, но я застрял на этом этапе чтения номера версии.

1 Ответ

0 голосов
/ 01 февраля 2019

Основываясь на комментарии aschipfl, вот рабочий скрипт.

if $(ConfigurationName) == Release (
    SETLOCAL EnableDelayedExpansion
    powershell "(Get-Item -path  $(TargetPath)).VersionInfo.ProductVersion" > version
    set /p VER=< version
    del version
    set "DIRNAME=FilterUtilityApp_!VER!"
    xcopy /s /y "$(TargetDir)*" "$(SolutionDir)!DIRNAME!\"
    xcopy /y "$(ProjectDir)Docs\*" "$(SolutionDir)!DIRNAME!\Docs\"
)

Обратите внимание, что% VER% заменяется на! VER!.

...