MSBuild和BizTalk

时间:2012-01-17 16:35:37

标签: msbuild biztalk biztalk-2009 biztalk-deployment

是否可以为BizTalk项目指定(或覆盖)Deploy ApplicationName,数据库服务器和数据库名称?如果是这样,怎么样?

不幸的是,这些数据存储在btproj.user文件而不是.btproj文件中,我的客户端不希望将btproj.user文件检入源控制系统。

(仅供参考 - 我们正在使用CodePlex的BizTalk Build Generator。)

1 个答案:

答案 0 :(得分:2)

我刚刚回顾了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>

您可以使用命令行轻松覆盖这些属性值,或者使用属性开关在VS或TeamBuild中添加其他msbuild参数

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

此项目的开发人员应重写默认的MSBuild.Custom.properties文件,使其如下所示

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

使用这种方法“。”只有在没有给出参数值时才会使用标识符(对于本地SQL Server)。因为使用当前的实现,属性的定义可以!覆盖从命令行传递的值。所以要注意这一点。