MSBuild и BizTalk

Можно ли указать (или переопределить) Deploy ApplicationName, сервер базы данных и имя базы данных для проектов BizTalk? Если да, то как?

К сожалению, эти данные хранятся в файле btproj.user, а не в файле .btproj, и мой клиент не хочет проверять файлы btproj.user в системе управления версиями.

(К вашему сведению, мы используем BizTalk Build Generator от CodePlex.)


person NealWalters    schedule 17.01.2012    source источник


Ответы (1)


Я только что просмотрел исходный код на CodePlex. Когда я все правильно понял они генерируют

%AppName%.Custom.targets
%AppName%.Custom.properties

файлы. В файле свойств перечислены некоторые свойства для подключения к базе данных BTS.

<BizTalkDatabaseServerName>.</BizTalkDatabaseServerName>
<BizTalkManagementDatabaseName>BizTalkMgmtDB</BizTalkManagementDatabaseName>
<BizTalkManagementDatabaseConnectionString>
 server=$(BizTalkDatabaseServerName);
 database=$(BizTalkManagementDatabaseName);
 integrated security=sspi;
</BizTalkManagementDatabaseConnectionString>
<PipelineComponentsFolderPath>C:\Program Files\Microsoft BizTalk Server 2010\Pipeline Components</PipelineComponentsFolderPath>

Вы можете легко переопределить эти значения свойств, используя командную строку или добавив дополнительные аргументы msbuild в VS или TeamBuild с помощью переключателя свойств.

msbuild.exe MyBizTalkProject.proj /p:BizTalkDatabaseServerName=SqlCluster 

Разработчик этого проекта должен переписать файл MSBuild.Custom.properties по умолчанию, чтобы он выглядел следующим образом.

<BizTalkDatabaseServerName Condition="'$(BizTalkDatabaseServerName)'==''">.</BizTalkDatabaseServerName>

Используя этот подход, "." идентификатор (для локального SQL Server) будет использоваться только в том случае, если для параметра не задано значение. Потому что с текущей реализацией определение Свойства может! переопределить значение, переданное из командной строки. Так что знайте это.

person Thorsten Hans    schedule 17.01.2012