Сборка задач vNext - это потрясающее улучшение по сравнению с предыдущим процессом сборки. Один недостаток заключается в том, что я не могу сделать некоторые задачи условными. Я могу создать дополнительную сборку для каждой комбинации, но это явно плохо масштабируется и вызывает много дополнительной работы, если нам нужно изменить какую-то другую часть сборки.Вызов Build vNext task напрямую
Вместо этого я предпочел бы иметь возможность писать собственные задачи PowerShell, которые могут вызывать существующие задачи построения. Существует по крайней мере один недостаток этого (если никакая сборка не запрашивает специально для vso-задачи, агент сборки не будет ее загружать), но учитывая, что мы используем локальные TFS и агенты сборки, я могу жить с этим.
Я пытался сделать что-то вроде следующего:
$path = get-item "$env:AGENT_HOMEDIRECTORY\Tasks\NuGetPackager\0.1.56\NuGetPackager.ps1"
& "$path" -searchPattern $searchPattern -outputDir "$packageFolder" -configurationToPackage $configurationToPackage -nugetAdditionalArgs "$nugetAdditionalArgs -version $nugetVersion"
К сожалению, это приводит следующее сообщение об ошибке:
2016-04-12T09:50:22.3652811Z ##[error]import-module : Could not load file or assembly 'Microsoft.TeamFoundation.DistributedTask.Agent.Interfaces,
2016-04-12T09:50:22.3652811Z ##[error]Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find
2016-04-12T09:50:22.3652811Z ##[error]the file specified.
2016-04-12T09:50:22.3652811Z ##[error]At C:\Agent1\Tasks\NuGetPackager\0.1.56\NuGetPackager.ps1:19 char:1
Теперь один решение, которое я нашел в Интернете показывает, что я мог бы добавить искал dlls к GAC, но я действительно, действительно не хочу. Также ясно, что задачи работают очень хорошо при вызове из TFS напрямую, поэтому какая конфигурация мне не хватает?
Я попытался добавить папку, содержащую DLL, к пути и даже вызвать SetDllDirectory явно в PowerShell, но ни одна из них не поможет.
Окружающая среда: Windows Server 2012 R2 как для агента сборки, так и для сервера TFS. Обновление TFS 2015 1.
Строки обязательно должны быть повторяемыми, никаких аргументов нет. Условные действия - это все последствия того, что какая-либо переменная сборки задана для определенных значений. Адаптация задач, безусловно, будет самым простым решением, я просто беспокоюсь о нежелательных побочных эффектах при обновлении. Я предполагаю, что до тех пор, пока я просто увеличиваю малую версию сборки, это вряд ли вызовет проблемы (что я должен исправлять обновленные задачи после установки SP, ясен, но допустим). – Voo
При обновлении до обновления TFS 2015 2 вы можете публиковать задания с использованием расширения. Он будет включать все стандартные задачи сборки. который просто позволит вам удалить расширение, создать новую версию своего расширения со всеми задачами, а затем опубликовать новую версию собственного расширения на сервере. Пока GUID задач сборки одинаковый, самая высокая версия всегда будет побеждать. Поэтому я бы выбрал гораздо более высокую версию. Таким образом, вы всегда уверены, что ваша задача называется. – jessehouwing
Можете ли вы связать меня с дополнительной информацией о расширениях для задач сборки? Похоже, я смогу опубликовать набор задач за один шаг, а также легко удалить его снова? Это было бы прекрасно. До сих пор я видел расширения только как возможность добавлять дополнительную информацию на веб-страницу, такую как расширение календаря. – Voo