0

是否可以为 BizTalk 项目指定(或覆盖)部署应用程序名称、数据库服务器和数据库名称?如果是这样,怎么做?

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

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

4

1 回答 1

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)仅在未给定参数值时使用。因为在当前的实现中,属性的定义可以!覆盖从命令行传递的值。所以请注意这一点。

于 2012-01-17T19:16:05.433 回答