2015-11-30 1 views
2

У меня есть рабочий файл MSBuild с определенными целями, которые я хочу запустить в сборке TFS. Цели полагаются на определенные переменные среды и свойства MSBuild, которые уже определены. У меня есть вкладка «Переменные» в моем редакторе определения сборки TFS, где я могу якобы устанавливать значения переменных, чтобы они действительно определялись при запуске целевых объектов, но кажется, что допустимы только буквенные значения - если я хочу определить переменную в терминах другой переменной (например, %OTHER_VARIABLE%\subfolder), нет никакого расширения переменной. Я пробовал различные способы указания другой переменной (например, $(OTHER_VARIABLE)), но значение всегда воспринимается буквально MSBuild.В определении построения TFS можно определить переменную в терминах другой переменной?

Есть ли способ определить переменную в терминах другой переменной?

+0

Какую версию TFS вы используете? Вы используете сборку XAML или vNext? Не могли бы вы указать, какую функцию вы хотите достичь, используя переменную? –

+0

Мы оцениваем TFS 2015. Мы довольно новы для TFS, поэтому я не уверен, что вы подразумеваете под сборкой XAML или vNext. Сейчас мы сравниваем TFS с существующими конфигурациями сборки TeamCity, где мы определяем «шаблоны сборки», которые содержат все требования к сборке, включая переменные среды, и мы очень сильно полагаемся на возможность определять переменные в терминах другие переменные - те другие переменные, которые в основном определяются самим TeamCity (например, рабочий каталог агента). – lesscode

+0

Я думаю, что мы сможем добиться того, что нам нужно, добавив новые цели в наш MSBuild-файл, который сначала настроил среду (только для сборки TFS необходимо было использовать их), но мне было любопытно, будет ли это возможно в самом определении сборки. Вкратце экспериментируя с более ранней версией TFS в прежней жизни (2010?), Мне кажется, что конфигурации конфигурации TFS 2015 на самом деле взяли некоторые концепции из TeamCity (например, различные виды «шагов сборки», которые могут быть добавлено в определение сборки), но TC все еще кажется намного более сложным. – lesscode

ответ

2

Если вы используете TFS 2015, Вы можете использовать это расширение:

https://marketplace.visualstudio.com/items?itemName=jessehouwing.jessehouwing-vsts-variable-tasks

https://github.com/jessehouwing/vsts-variable-tasks/wiki/Expand-Variable

When you define a variable in the Variables screen and use other variables as value, they won't be expanded (as you may have expected). Instead the literal text is passed to the tasks in the workflow. Without this little task the following configuration won't work: 

Variable Value 
Build.DropLocation \\share\drops\$(Build.DefinitionName)\$(Build.BuildNumber) 

By adding the Expand variable(s) task to the top of your workflow, it will take care of the expansion, so any task below it will receive the value you're after. 
+0

Я надеялся, что есть способ сделать это изначально в TFS, но я думаю, что это так. – lesscode

Смежные вопросы