ОК, я узнал, как сделать это с помощью аналогичного вопроса, который был связан с Git строит: Add BuildNumber in GitTemplate.12.xaml
WARNING!! AFAIK you're going to need VS2013 for this. You can't do it in VS2015.
Для полноты я перечисляю все пылающие обручи шагов, которые я должен был перейти пройти.
первая попытка:
Я попытался просто установить номер пакета OctoPack используя TF_BUILD переменную окружения TF_BUILD_BUILDNUMBER, предоставляя следующие аргументы MsBuild
/p:RunOctoPack=true /p:OctoPackPackageVersion=”$(TF_BUILD_BUILDNUMBER)”
но TF_BUILD_BUILDNUMBER включает текст (название из приложение, я думаю), а также число, например CIBuild_20130613.6, вызвавший ошибку NuGet, поскольку NuGet может работать только с числами. Также я действительно хочу только 20130613.6 часть в любом случае.
вторая попытка:
Исследования показали, что я должен был создать настроенный шаблон процесса сборки. В качестве отправной точки я загрузил копию шаблона по умолчанию, отредактировав существующее определение процесса сборки (которое использует шаблон по умолчанию) и щелкнув ссылку для загрузки.
Далее я переименовал шаблон OctoPackBuild.xaml и добавить его в TFS.Я помещал его в папку BuildProcessTemplates отдельно от проекта, который я хотел создать, так как этот шаблон можно использовать для любого проекта.
Технически вы должны создать проект библиотеки деятельности рабочего процесса и добавить шаблон в проект, а затем проверить проект в TFS, но я счел это ненужным. Обратитесь к msdn article, если вы хотите отправиться на целый боров.
После того, как файл xaml находится в TFS, вам необходимо отредактировать его в Visual Studio, чтобы получить ссылку на номер сборки. Следующие шаги пришли из ответа на вопрос this msdn question.
а) Проверьте файл OctoPackBuild.xaml и открыть его в Visual Studio 2013.
б) Перейдите на вкладку Импорт в нижней части редактора XAML, и добавить ссылку на Microsoft.TeamFoundation.Build. Activities.Extensions.
с) Нажмите на контейнер «Общий процесс сборки» в редакторе XAML, а затем перейдите на вкладку Переменные в нижней части. Добавьте переменную BuildDetail, и установить его тип, чтобы быть IBuildDetail
d) Из панели инструментов, перетащите GetEnvironmentVariable активность только после Update Номер сборки активности, и установите тип в be IBuildDetail. Отредактируйте свойства активности; установите свойство Имя в WellKnownEnvironmentVariables.BuildDetail, отображаемое имя для «Получить Построить Детали» (или что-то плывет лодка), и результат в BuildDetail < - это имя переменную, которую вы создали.
е) Теперь, когда у вас есть доступ к объекту BuildDetail, вы можете передать свойство BuildNumber в MSBuild. Сделайте это, отредактировав CommandLineArguments свойство деятельности «Run MsBuild» и установите значение
String.Format("/p:SkipInvalidConfigurations=true {0} /p:OctoPackPackageVersion={1}", AdvancedBuildSettings.GetValue(Of String)("MSBuildArguments", String.Empty), BuildDetail.BuildNumber.Split(CChar("_"))(1))
Следует отметить, что BuildDetail теперь со ссылкой на переменную, а не «Microsoft.TeamFoundation. Build.Client.BuildDetail.
Кроме того, важно понимать, что существует предположение, что BuildNumber находится в формате [текста] _ [числа]. Таким образом, функция Split удаляет текстовую часть и передает только числа OctoPack. Если вы не разделили BuildNumber, вы бы вызвали проблему NuGet, о которой я упоминал в своей первой попытке. Это также означает, что если вы добавите дополнительное подчеркивание в свое имя сборки, вам нужно будет выбрать элемент # 2, а не # 1.
f) Проверьте настроенный шаблон сборки (OctoPackBuild.xaml) обратно в TFS.
g) Затем вам нужно отредактировать свой процесс сборки, чтобы использовать настраиваемый шаблон вместо стандартного.
Причина, по которой вы не можете использовать VS2015 для этого упражнения, заключается в том, что пользовательский интерфейс не позволит вам выбрать файл xaml из TFS. Похоже, что у MS закончилось сокращение бюджета, и часть пользовательского интерфейса была разорена.
VS2010 также не работает, поскольку он не может работать с шаблоном TFS 2013.
Единственный способ, которым я получил его работать, - использовать VS2013 и отредактировать процесс сборки оттуда. VS2013 позволит вам указать новый шаблон и перейти в TFS, чтобы найти файл OctoPackBuild.xaml.
h) Тогда все, что вам нужно сделать в процессе сборки, это добавить/p: RunOctoPack = true для аргументов MSBuild, и все готово.
Надеется, что это помогает кто-то!
@ Cece-MSFT Да, я сделаю это. Я просто должен ждать 2 дня, так как это ответ на мой собственный вопрос. – DeanOC