【问题标题】:MSBuild and BizTalkMSBuild 和 BizTalk
【发布时间】:2012-01-17 16:35:37
【问题描述】:

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

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

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

【问题讨论】:

    标签: msbuild biztalk biztalk-2009 biztalk-deployment


    【解决方案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>
    

    您可以通过使用命令行或使用属性开关在 VS 或 TeamBuild 中添加额外的 msbuild 参数来轻松覆盖这些属性值

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

    此项目的开发者应将默认的 MSBuild.Custom.properties 文件改写成如下所示

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

    通过使用这种方法将“.”标识符(用于本地 SQL Server)仅在未给定参数值时使用。因为在当前的实现中,属性的定义可以!覆盖从命令行传递的值。所以请注意这一点。

    【讨论】:

      猜你喜欢
      • 2011-08-15
      • 2011-05-06
      • 1970-01-01
      • 2011-03-14
      • 2016-08-15
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多