BizTalk Server 프로젝트 버전 관리
.NET Framework 사용하여 개발할 때 버전 관리는 버전 번호 변경의 영향을 최소화하기 위해 작동하는 표준 규칙 집합에 의해 관리됩니다. .NET Framework애플리케이션 또는 구성 요소가 배포되는 방법에 따라 애플리케이션 구성 파일, XCOPY 설치 또는 기타 .NET Framework 배포 메커니즘을 통해 종속성을 처리할 수 있습니다. 다음 섹션에서 보여 주듯이 BizTalk Server 버전 관리 및 종속성에 복잡성을 더합니다.
버전 번호 변경의 영향
.NET Framework 개발에서는 빌드가 발생할 때 어셈블리 버전 번호를 현재 빌드 번호로 업데이트하는 것이 일반적입니다. 그러나 BizTalk 솔루션을 개발할 때 어셈블리 버전 번호를 변경하면 어셈블리와 해당 어셈블리 버전 번호로 DLL을 참조하는 종속 항목 사이의 관계가 끊어질 수 있습니다. 다음 표에서는 버전 번호와 어셈블리 버전 번호 변경의 영향을 사용하여 BizTalk Server 어셈블리를 참조하는 항목을 나열합니다.
엔터티 | 어셈블리 버전 번호 변경 시 끼치는 영향 |
---|---|
바인딩 파일 | 어셈블리 버전 번호를 변경하면 어셈블리를 참조하는 기존 바인딩 파일이 실패합니다. 이는 바인딩 파일이 버전 번호를 포함하는 특성으로 어셈블리를 참조하기 때문입니다. 메모장 또는 다른 편집기를 사용하여 바인딩 파일에서 버전 정보를 업데이트할 수 있습니다. 솔루션을 다시 배포한 다음 BizTalk Server 관리 콘솔을 사용하여 바인딩 파일을 다시 생성할 수도 있습니다. 마지막으로 스크립트를 사용하여 배포 및 버전 관리를 자동화할 수 있습니다. 배포에 대한 자세한 내용은 BizTalk 애플리케이션 배포 및 관리를 참조하세요. |
BAM 추적 프로필 정의 파일(.btt) | 어셈블리 버전 번호를 변경하면 기존 BAM 추적 프로필 정의 파일이 실패합니다. BAM 추적 파일은 이진 파일 형식이므로 편집될 수 없고 다시 생성되어야 합니다. BAM 추적 프로필이 필요하면 다음 작업 중 하나를 수행해야 할 수 있습니다. - 빌드 프로세스 중에 버전 번호를 자주 업데이트하지 않습니다. - 버전 번호가 안정될 때까지 BAM 추적 프로필 빌드를 지연합니다. |
웹 서비스 게시 마법사를 사용하여 게시된 웹 서비스 | 웹 서비스 게시 마법사를 사용하여 ASP.NET 웹 인터페이스를 생성하는 경우 BizTalk Server 어셈블리의 어셈블리 버전이 ASP.NET 소스 코드에 포함됩니다. 어셈블리 버전 번호는 웹 서비스 작업의 bodyTypeAssemblyQualifiedName 속성의 일부로 ASP.NET 인터페이스에서 런타임에 사용됩니다. bodyTypeAssemblyQualifiedName 속성을 업데이트하지 않고 BizTalk Server 어셈블리의 버전 번호가 변경되면 BizTalk Server 후속 웹 서비스 작업이 거부됩니다. 수신 위치가 XmlDefaultPipeline을 사용할 경우 등록은 문서 유형에 따라 달라집니다. 등록은 포함된 어셈블리 정보를 사용하며 어셈블리가 없으면 등록이 실패합니다. 포트를 표시하고 마법사를 사용하여 수신 위치를 만드는 경우 기본값인 PassThruPipeline을 사용하는 경우 등록은 이 포함된 어셈블리 정보를 무시합니다. |
BizTalk Server 어셈블리 및 배포에 대한 자세한 내용은 BizTalk 어셈블리를 참조하세요.
버전 관리 방식
프로젝트를 계획할 때 다음 중 하나를 선택합니다.
배달 가능한 특정 항목의 고정 어셈블리 버전을 선택하고 파일 버전 번호만 증분
개발 과정에서 어셈블리 버전과 파일 버전 모두 증분
다음 표는 이러한 두 가지 버전 관리 방식을 비교하여 보여 줍니다.
고정 어셈블리 버전, 동적 파일 버전 | 동적 어셈블리 버전, 고정 또는 동적 파일 버전 |
---|---|
어셈블리 버전 번호 = 고정 번호 파일 버전 번호 = 빌드 번호 |
어셈블리 버전 번호 = 빌드 번호 파일 버전 번호 = 빌드 번호 |
BizTalk Server 런타임은 여러 어셈블리가 설치된 경우 어셈블리의 잘못된 버전을 선택할 수 있습니다. | BizTalk Server 여러 어셈블리가 설치된 경우에도 항상 최신 버전의 어셈블리를 실행합니다. |
언제든지 단일 솔루션 버전만 배포할 수 있습니다. | 스키마 정의와 같은 솔루션의 다른 측면이 일치하지 않더라도 솔루션의 여러 버전은 나란히 배포될 수 있습니다. |
업데이트된 어셈블리를 강제 로드하려면 BizTalk 호스트를 다시 시작해야 합니다. | BizTalk Server 강제로 새 어셈블리를 로드합니다. |
어셈블리 버전 번호를 참조하는 파일(예: 바인딩 파일, 추적 프로필)을 편집할 필요가 없기 때문에 보다 간단하게 새 배포를 만들 수 있습니다. | 어셈블리 버전 번호를 참조하는 파일을 새 버전으로 계속 업데이트해야 하기 때문에 배포 시 추가 작업이 필요합니다. |
시스템을 프로토타입화하거나 다른 모든 유형의 비전달 프로젝트를 개발하는 경우 고정 어셈블리 버전 및 동적 파일 버전을 사용할 수 있습니다. 응용 프로그램을 최종 사용자에게 전달하지 않을 경우 어셈블리 버전을 고정하고 파일 버전 번호를 증분하여 배포 작업을 능률화하고 종속성 손실을 줄일 수 있습니다. 버전 추적을 위해서는 각 빌드에 대한 파일 버전 번호를 증분해야 합니다.
최종 사용자에게 전달될 프로젝트를 빌드할 경우 어셈블리 버전 번호를 증분시키고 상황에 따라 의미 있는 파일 버전 번호를 저장해 보십시오. 이와 같은 작업을 수행하려면 빌드 번호와 관련 종속성을 수정해야 하는 번거러움이 발생하지만 최신 버전의 어셈블리를 사용할 수 있게 됩니다. 자동화된 배포 스크립트를 사용하여 버전 관리의 영향을 줄일 수 있습니다. 배포 샘플을 보려면 애플리케이션 배포(BizTalk Server 샘플 폴더)를 참조하세요.
참고
적절한 파일을 전달하며 간단하게 유지 관리 및 기능을 향상시킬 수 있는 버전 관리 메커니즘을 선택해야 합니다.
맵 함수 버전 번호 매기기
.NET 어셈블리는 스크립팅 펑토이드를 사용하여 맵 내에서 호출할 수 있습니다. 이렇게 하면 유연성이 매우 향상되어 개발자가 다양한 사용자 지정 매핑 문제를 해결할 수 있습니다. 또한 맵에 고유한 제약 조건을 적용합니다. 어셈블리 형식 이름뿐만 아니라 호출되는 전체 어셈블리 버전 번호도 내부적으로 참조해야 합니다. 따라서 맵에 의해 호출된 어셈블리의 버전 번호가 바뀌면 해당 어셈블리를 참조하는 모든 링크가 손상됩니다.
이 문제가 발생하지 않도록 하려면 어셈블리가 맵에서 호출되어야 하는 경우 맵 기능만 보유하는 특정 어셈블리를 만들고 이 어셈블리의 어셈블리 버전 번호를 고정하는 것이 좋습니다. 이런 방식으로 다른 도우미 함수가 맵을 손상시키지 않고 어셈블리 버전을 업데이트할 수 있습니다.
맵 개발 후 맵에서 참조된 어셈블리가 변경되면 맵 편집기의 외부에서 맵 파일을 업데이트하여 업데이트된 버전 번호를 반영하도록 하십시오.
메모장을 사용하여 업데이트된 버전 번호를 반영하도록 맵 파일을 수정하려면 다음을 수행하십시오.
시작 메뉴를 사용하여 메모장을 시작합니다.
메모장의 파일 메뉴에서 열기를 클릭합니다. 열기 대화 상자에서 수정할 지도 파일을 선택한 다음 열기를 클릭합니다.
편집 메뉴에서 찾기를 클릭합니다. 찾기 대화 상자에서 Assembly=를 입력하고 다음 찾기를 클릭합니다.
외부 어셈블리에 대한 스크립트 참조가 있으면 메모장에서 다음과 같은 XML 요소를 찾습니다.
<Script Language="ExternalAssembly" Assembly="Contoso.Scripts, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c5145e4e089" Class="Contoso.Scripts" Function="CalculateValue" AssemblyPath="Contoso.Scripts.dll"/>
버전 번호를 업데이트합니다. 여러 인스턴스가 있는 경우 편집 메뉴에서 바꾸기를 사용합니다.
파일을 저장합니다.
이제 맵 편집기를 사용하여 맵을 열 수 있습니다.
참고 항목
BizTalk 애플리케이션 배포에 대한 모범 사례
Admin(BizTalk Server 샘플 폴더)
프로그래밍 방식으로 새 버전의 오케스트레이션 배포 및 시작