Установка переменной C # на этапе сборки TFS - PullRequest
0 голосов
/ 01 мая 2018

Я действительно новичок в C # и TFS, я установил базовое приложение WPF, которое использует непрерывную интеграцию. Проблема в том, что некоторые пользователи не обновляются, когда они должны, и у нас нет так сказать контроля версий. Я хочу, чтобы в коде была переменная, подобная этой.

public static string BuildNumber = "";

Заполните его во время онлайн-сборки. Таким образом, мы можем показать это в строке заголовка, и когда они позвонят, мы сразу узнаем, с чем имеем дело. Я предполагаю, что это можно сделать в разделе «переменные процесса». Но очень нужна пошаговая помощь здесь. Просто хотите, чтобы он был в том же формате, что и сборка, это «$ (date: yyyyMMdd) $ (rev: .r) _ $ (SourceBranchName)» Мы действительно новички в этом и знаем, что мы должны использовать правильные версии сборки, такие как 1.0.0.1. Но просто действительно ищем быстрое решение. Так что, если настроить правильное управление версиями действительно просто. Пожалуйста, не пытайтесь направить меня по этому пути, здесь уже крутой курс обучения.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Предостережение : Я предполагаю, что вы используете TFS 2015 или более позднюю версию и Build vNext (т.е. не используете Xaml Build).

Ваш вопрос легко решается с помощью Powershell Task в качестве первого шага вашей сборки. В этот момент номер сборки известен и доступен в переменной ${env:BUILD_BUILDNUMBER}.

Скажите, что файл, содержащий строку public static string BuildNumber = "";, находится в корне исходного каталога и называется BuildNumber.cs. Тогда код Powershell похож на следующий:

$pathToBuildNumber = "${env:BUILD_SOURCESDIRECTORY}\BuildNumber.cs"
$source = Get-Content $pathToBuildNumber
$source -replace 'public static string BuildNumber = "(.*)";',$env:BUILD_BUILDNUMBER | Out-File $pathToBuildNumber
0 голосов
/ 02 мая 2018

Насколько я понимаю, кажется, что вы хотите перезаписать свой номер сборки переменными, вы можете сделать это с помощью сценария powershell, используя переменные сборки :

1) Сначала создайте скрипт Powershell, подобный этому

$FinalVersion=Some-Function-To-Calculate-Version
$BuildDefName = $Env:BUILD_DEFINITIONNAME
Write-Host "##vso[build.updatebuildnumber]$($BuildDefName)-$($FinalVersion)"

2) В вашем определении сборки vNext для набора " Формат номера сборки t" это ни к чему. Это не имеет значения, потому что номер сборки будет перезаписаны.

3) В тех же шагах определения сборки vNext добавьте первый шаг как Шаг Powershell и установите сценарий из шага 1 для выполнения. Вы Позже можно настроить, если вы хотите передать переменные для того, чтобы вычислите номер своей сборки.

4) Поставьте в очередь свою сборку и посмотрите результаты.

С другой стороны, посмотрите на этот похожий вопрос: Доступ к номеру ревизии сборки в скрипте Powershell во время сборки TFS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...