Как передать переменные в MSBuild с помощью VSTS
Я смотрю на VSTS Build глазами пользователя Teamcity. Я хотел бы настроить несколько сборок, каждая из которых имеет одинаковый набор параметров для использования MSBuild. Например, я хотел бы, чтобы все мои сборки разделяли параметр CreateHardLinksForCopyFilesToOutputDirectoryIfPossible.
Я знаю, что могу выписать вручную /p:CreateHardLinksForCopyFilesToOutputDirectoryIfPossible=true
в каждой конфигурации сборки, которую я настраивал, но я бы предпочел установить это один раз, используя переменную system. Однако, когда я устанавливаю свои переменные с помощью редактора переменных, агент VSTS преобразует имена переменных в верхний регистр (а также преобразует "." В "_" и другие преобразования), что означает, что msbuild не смотрит на них (это было ожидая правильной версии PascalCased). Я подтвердил это, выводя все текущие переменные среды во время сборки. Я не вижу никакой документации о том, почему это происходит.
Есть ли шаблон для передачи параметров MSBuild через систему переменных?
1 ответ
Для имени переменной VSTS он не зависит от регистра. Вам просто нужно сосредоточиться на значении переменной.
Например, если у вас есть переменная tHisIsMixEdCase
со значением /p:CreateHardLinksForCopyFilesToOutputDirectoryIfPossible=true
,
Тогда неважно использовать $(THISISMIXEDCASE)
или же $(tHisIsMixEdCase)
в опции аргументов MSBuild они оба работают так же, как и при использовании /p:CreateHardLinksForCopyFilesToOutputDirectoryIfPossible=true
непосредственно.