Как сделать имя базы данных параметром на deploymanifest? - PullRequest
0 голосов
/ 05 сентября 2011

Я пытаюсь настроить процесс сборки TFS по умолчанию, добавив шаг, на котором база данных разворачивается с использованием проекта базы данных.Я выполнил [эти шаги] [1], и развертывание БД работает, когда имя базы данных представляет собой жесткий код в файле deploymanifest на этом шаге в InvokeProcess.

c.Установите для свойства Arguments значение "/ a: Deploy / dd + / dsp: Sql /manifest:DatabaseProjectName.deploymanifest".Вы должны заменить DatabaseProjectName именем проекта базы данных, который вы хотите развернуть.

Мой вопрос: как я могу изменить DatabaseProjectName на переменную и назначить ее динамически, чтобы этот BuildProcessTemplate мог использоватьсядругие базы данных или если проект разветвлен в рамках TFS?Я попытался использовать переменную $ (DatabaseName), используемую в SQLCmdVars, со свойствами проекта, но, похоже, она не разрешается.

1 Ответ

2 голосов
/ 09 сентября 2011

Во-первых, вы можете сделать DatabaseProjectName переменной в своем определении сборки, изменив шаблон определения, добавив «DatabaseProjectName» (и «TargetDatabaseName», если имя БД будет другим) в качестве аргументов. Вы можете щелкнуть в свойстве Metadata, чтобы отобразить свойства, чтобы можно было присвоить ему разные имена в каждом определении сборки. Смотрите этот пост о добавлении аргументов. http://www.ewaldhofman.nl/post/2010/04/27/Customize-Team-Build-2010-e28093-Part-2-Add-arguments-and-variables.aspx

Затем используйте аргументы в вашей активности InvokeProcess в качестве переменных в строке, как показано ниже. Вы можете переопределить имя базы данных в манифесте, включив параметр / p: TargetDatabase.

/a:deploy /dd+ /dsp:sql /manifest:" & DatabaseProjectName & ".deploymanifest /p:TargetDatabase=" & TargetDatabaseName
...