2010-06-30 4 views
1

BizTalk 2006에서 일부 배포 작업을 수행하기 위해 BTSTask 및 BTSControl을 사용하고 있습니다. BizTalk 2009로 이동했으며 이러한 도구는 BT2009에서 작동하지 않는 것 같습니다. BT2009에 대한 특정 버전이나 새로운 도구가 있습니까?BizTalk 2009 용 BTSTask 및 BTSControl

+0

내가 사용하는 솔루션에 대한 자세한 정보가 필요하십니까? – Filburt

답변

0

BTSTask 또는 BTSControl에 대한 개인적인 경험이 없지만 실제로 BizTalk 2009를 사용하여 Team Foundation Server를 큰 성공을 거두었습니다. 기본적으로 아래에 설명 된 기사를 읽고 자신의 환경에 맞게 사용자 지정했습니다.

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

+0

감사합니다. Andrew에게이 링크를 제공해 주셔서 감사합니다. 문제는 동일한 BizTalk 배포 컴퓨터에 Visual Studio와 Team Build를 설치하지 않아도된다는 것입니다. 그래서 사용자 지정 BizTalk 배포 작업은 훌륭하지만 내 경우에는 적용 할 수 없습니다. ( – Idriss

+0

내 환경에서 우리는 빌드 서버, 내 개발 상자, QA 서버 및 프로덕션을 가지고 있습니다. 서버 .QA 서버 및 프로덕션 서버에 VS 또는 Team Build가 설치되어 있지 않습니다. 설치는 BizTalk 데이터베이스를 참조하여 수행됩니다 (효과적으로 msi 가져 오기와 동일). 현재는 DLL을 GACing하는 추가 단계가 있습니다. 배치 파일과 함께. 나는 이것을 자동화하는 프로토 타입을 만들었지 만 아직 구현하지 않았다 (아키텍처 시간을 다 써 버렸다). –

0

나는 BizTalk 2009와 같은 제한을 공격하지만, PowerShell 스크립트 내에서 Microsoft.BizTalk.ExplorerOM를 사용하여 주변의 일을 관리했다. (다음 this excellent blog post on BizTalk Deployments with 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 배포는 PowerShell을 통해 MSBuild에서, BTSTask 및 ExplorerOM에 의해 구동된다. 심지어 어셈블리를 배포 할 때 다른 어셈블리 (또는 포트)가 의존하는 문제를 해결할 수있었습니다.

1

나는 대신 BizTalk Deployment Framework을 볼 것입니다. MSBuild와 WIX를 기반으로하며 개발자 도구를 추가하여 개발을 위해 신속하게 배치하고 WIX를 통해 패치를 처리하는 데 이르기까지 모든 것을합니다. 나는 그것을 매우 추천한다.