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