В настоящее время я работаю над большим наследием проекта, где каждый файл проекта C# имеет задание на копирование (с помощью специального инструмента, написанного на C#) в событии post build.Как передать переменную среды на этап построения решения (Build vNext)
Событие после сборки выглядит
"$(MyEnvVar)\_Build\_Binaries\CopyTool" "$(TargetDir)$(TargetName)" "$(MyEnvVar)\_Binaries"
Как вы можете видеть, путь для задания копирования на основе значения переменной окружения.
Теперь я хочу построить другое решение, которое ссылается на некоторые из упомянутых выше проектов.
Сбой сборки из-за того, что для сборки не задана переменная окружения.
Билд шаг порядок определения сборки vNext:
SetEnv скрипт PowerShell
[Environment]::GetEnvironmentVariable("MyEnvVar","Process")
Write-Host 'build sources dir'
Write-Host $Env:BUILD_SOURCESDIRECTORY
[Environment]::SetEnvironmentVariable("MyEnvVar", $Env:BUILD_SOURCESDIRECTORY, "Process")
- Visual Studio Построить шаг
- Visual Studio Test
- ... (индекс , публиковать, копировать, публиковать артефакты)
Но значение «MyEnvVar» недоступно в событии пост-сборки, которое выполняется шагом VS Solution Build.
Как достичь того, что шаг сборки VS имеет значение, ранее заданное в сценарии powershell на TFS onPremise (не VSO)?
Извините, но я не понимаю, как это может мне помочь – Khh
@Khh: Если вы можете предоставить сценарий, в котором вы передаете значение MyEnvVar, мне было бы легко пройти через него. –
Я отредактировал вопрос, задание на копирование выполняется с помощью инструмента, а не сценария powershell. – Khh