用于 BizTalk 2009 的 BTSTask 和 BTSControl

发布于 2024-09-07 15:00:52 字数 116 浏览 3 评论 0原文

我正在使用 BTSTask 和 BTSControl 在 BizTalk 2006 上执行一些部署操作。我们迁移到 BizTalk 2009,这些工具似乎不适用于 BT2009。 BT2009有什么特定版本或新工具吗?

I am using BTSTask and BTSControl to do some deployment operation on a BizTalk 2006. we moved to BizTalk 2009 and these tools seem to not work with BT2009. are there any specific version or new tools for BT2009?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

南薇 2024-09-14 15:00:52

相反,我会查看 BizTalk 部署框架。它基于 MSBuild 和 WIX 构建,可以完成从添加开发人员工具到快速部署开发内容到通过 WIX 处理修补等所有操作。我强烈推荐它。

I would instead look at the BizTalk Deployment Framework. Its built on MSBuild and WIX and does absolutely everything from adding developer tools to quickly deploy things for development to handling patching via WIX. I highly recommend it.

木落 2024-09-14 15:00:52

我没有使用 BTSTask 或 BTSControl 的个人经验,但实际上我已经能够利用 Team Foundation Server 在 BizTalk 2009 中取得巨大成功。我基本上遵循下面概述的文章,然后根据我自己的环境对其进行自定义:

BizTalk 2009 - 构建和构建使用 Team Foundation Server 2008 部署自动化 - 第 1 部分

I have no personal experience with BTSTask or BTSControl but I have actually been able to utilize Team Foundation Server to great success with BizTalk 2009. I basically followed the article outlined below and then customized it from there for my own environment:

BizTalk 2009 - Build & Deploy automation with Team Foundation Server 2008 – Part 1

爱她像谁 2024-09-14 15:00:52

我在 BizTalk 2009 中确实遇到了同样的限制,但设法在 PowerShell 脚本中使用 Microsoft.BizTalk.ExplorerOM 来解决这个问题。

停止和启动 BizTalk 应用程序的示例

(遵循这篇关于使用 PowerShell 进行 BizTalk 部署的优秀博客文章

param
(
    [switch] $start,
    [switch] $stop,
    [string] $appName,
    [string] $connectionstring
)


    function Stop-Application
    {
        $app = $catalog.Applications[$appName]
    
        if ($app -eq $null)
        {
            Write-Host "Application " $appName " not found" -fore Red
        }
        else
        {
            if ($app.Status -ne 2)
            {
                $null = $app.Stop(63)
                $null = $catalog.SaveChanges()
                $null = $catalog.Refresh()
                Write-Host "Stopped application: " $appName -fore Green
            }
            else
            {
                Write-Host "Application: " $appName " already stopped" -fore Yellow
            }
        }
    }


    function Start-Application
    {
        $app = $catalog.Applications[$appName]

        if ($app -eq $null)
        {
            Write-Host "Application " $appName " not found" -fore Red
        }
        else
        {
            if ($app.Status -eq 2)
            {
                $null = $app.Start(63)
                $null = $catalog.SaveChanges()
                $null = $catalog.Refresh()
                Write-Host "Started application: " $appName -fore Green
        }
        else
        {
            Write-Host "Application: " $appName " already started" -fore Yellow
        }
    }
}


$null = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM")

$catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$catalog.ConnectionString = $connectionstring


if ($catalog.Applications -eq $null)
{
    Write-Host "Application catalog is empty" -fore Red
}


if ($start)
{
    Start-Application
}


if ($stop)
{
    Stop-Application
}

我们的 BizTalk 部署由 MSBuild、BTTSTask 和 ExplorerOM 通过 PowerShell 驱动。我什至设法解决了部署其他程序集(或端口)所依赖的程序集时的问题。

I did hit the same limitation with BizTalk 2009 but managed to work around using Microsoft.BizTalk.ExplorerOM from within PowerShell scripts.

Example for Stopping and Starting BizTalk Applications

(following this excellent blog post on BizTalk Deployments with PowerShell)

param
(
    [switch] $start,
    [switch] $stop,
    [string] $appName,
    [string] $connectionstring
)


    function Stop-Application
    {
        $app = $catalog.Applications[$appName]
    
        if ($app -eq $null)
        {
            Write-Host "Application " $appName " not found" -fore Red
        }
        else
        {
            if ($app.Status -ne 2)
            {
                $null = $app.Stop(63)
                $null = $catalog.SaveChanges()
                $null = $catalog.Refresh()
                Write-Host "Stopped application: " $appName -fore Green
            }
            else
            {
                Write-Host "Application: " $appName " already stopped" -fore Yellow
            }
        }
    }


    function Start-Application
    {
        $app = $catalog.Applications[$appName]

        if ($app -eq $null)
        {
            Write-Host "Application " $appName " not found" -fore Red
        }
        else
        {
            if ($app.Status -eq 2)
            {
                $null = $app.Start(63)
                $null = $catalog.SaveChanges()
                $null = $catalog.Refresh()
                Write-Host "Started application: " $appName -fore Green
        }
        else
        {
            Write-Host "Application: " $appName " already started" -fore Yellow
        }
    }
}


$null = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.BizTalk.ExplorerOM")

$catalog = New-Object Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer
$catalog.ConnectionString = $connectionstring


if ($catalog.Applications -eq $null)
{
    Write-Host "Application catalog is empty" -fore Red
}


if ($start)
{
    Start-Application
}


if ($stop)
{
    Stop-Application
}

Our BizTalk deployment is driven by MSBuild, BTSTask and ExplorerOM via PowerShell. I even managed to solve the problems when deploying Assemblies other Assemblies (or Ports) depend on.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文