TFS Как получить значение GetEnvironmentVariable

В моей сборке tfs я создал аргумент, которому я передаю $(TF_BUILD_BUILDDIRECTORY)

введите описание изображения здесь Затем в моем файле xaml я добавил переменную с именем "test1" и добавил шаг GetEnvirenmentVariable, где я хотел бы сохранить значение

TF_BUILD_BUILDDIRECTORY

введите здесь описание изображения

Я НЕ могу получить значение, чтобы пройти. Вывод моей сборки: введите здесь описание изображения

Он печатает $(TF_BUILD_BUILDDIRECTORY) вместо "C:\temp... и т.д."

Пожалуйста помоги! Спасибо


person ShaneKm    schedule 19.01.2016    source источник


Ответы (1)


Обратитесь к последнему абзацу в этом документе MSDN:

Использовать данные среды из пользовательского процесса сборки

Если вам нужно использовать переменную среды в вашем шаблоне пользовательского процесса сборки, вы можете использовать действие GetEnvironmentVariable для получения данных. Вы можете получить данные из любой из WellKnownEnvironmentVariables.

Например, чтобы получить путь к каталогу двоичных файлов, задайте для свойства Name действия GetEnvironmentVariable значение Microsoft.TeamFoundation.Build.Activities.Extensions.WellKnownEnvironmentVariables.BinariesDirectory.


Пожалуйста, выполните следующие действия:

  1. Создайте строковую переменную с именем: BINARIESDIRECTORY.
  2. Добавьте действие GetEnvironmentVariable (String), установите Имя = Microsoft.TeamFoundation.Build.Activities.Extensions.WellKnownEnvironmentVariables.BinariesDirectory и Результат = BINARIESDIRECTORY.
  3. Добавьте действие CopyDirectory, установите Source = BINARIESDIRECTORY и Destination = «\servername\drop»
person PatrickLu-MSFT    schedule 20.01.2016
comment
Что, если я хочу, чтобы результат был динамическим, то есть я хочу иметь возможность передавать переменную BUILDDIRECTORY в другое время SOURCESDIRECTORY, поэтому я надеялся, что смогу передать $(TF_BUILD_BUILDDIRECTORY) ИЛИ $(НЕКОТОРАЯ ДРУГАЯ ХОРОШО ИЗВЕСТНАЯ ПЕРЕМЕННАЯ) в DotCoverReportPath /VARIABLE, а затем преобразовать его в фактическое значение в моем рабочем процессе. Есть ли способ сделать это? - person ShaneKm; 20.01.2016
comment
В процессе сборки не может быть достигнуто. Ведь переменные окружения работают в программах или скриптах. См. обновленный ответ, stackoverflow.com/questions/34888350/ - person PatrickLu-MSFT; 21.01.2016
comment
Понятно. Благодарю. В итоге я использовал if/else. Если true, используйте BUILDDIRECTORY, в противном случае используйте DEPLOYMENTDIRECTORY с помощью Microsoft.TeamFoundation.Build.Activities.Extensions.WellKnownEnvironmentVariables. - person ShaneKm; 21.01.2016
comment
Я получаю эту ошибку: тип «InArgument (mtbae: WellKnownEnvironmentVariables)» свойства «BINARIESDIRECTORY» не может быть разрешен. Я попытался изменить тип переменной BINARIESDIRECTORY на «WellKnownEnvironmentVariables», но проблема осталась. - person Mohan Ram; 14.07.2017