2008-11-06 4 views
2

내 모든 .net 응용 프로그램에서 내 빌드 프로세스 (nant 및 사용자 지정 작업 혼합)는 [AssemblyVersionAttribute] AssemblyInfo.cs를 현재 빌드 번호로 자동 업데이트하여 msbuild, 버전 번호의 빌드 번호에 각인하십시오.내 빌드 프로세스에서 자동 BizTalk 버전 관리

저는 이제 첫 번째 BizTalk 프로젝트에서 작업하고 있으며 BizTalk 어셈블리의 버전 번호와 동일한 작업을 수행하려고합니다.하지만 문제가 발생했습니다.

먼저 aseembly 버전 번호가 btproj 파일에 저장되므로 일부 문제를 해결하고 www.codeplex.com/biztalk를 찾았습니다.이 문제는 내 문제의 답처럼 보일 수 있지만 더 심각한 문제가 있습니다!

필자는 내 스키마를위한 프로젝트를 가지고 있고 다른 파이프 라인 프로젝트는 파이프 라인 프로젝트가 내 스키마 프로젝트를 참조하는데, 이는 플랫 파일 dis/assemblers를 가지고 있기 때문입니다. Visual Studio 내에서 업데이트를해도 스키마에 대한 파이프 라인 구성 요소 참조가 업데이트되지 않으므로 버전 번호를 업데이트 할 때 문제가 발생합니다.

VS IDE에서 1.0.0.0에서 1.1.0.0으로 모든 버전 번호를 수동으로 업데이트하는 경우 파이프 구성 요소로 빌드가 실패합니다. 플랫 파일 dis/assembler는 이전 1.0.0.0 버전의 스키마를 계속 참조합니다! 그들은 자동으로 업데이트하지 않습니다!

이것은 실제로 속성 페이지에서 BizTalk 프로젝트의 버전 번호를 업데이트 한 다음 프로젝트를 빌드하고이를 참조하는 모든 파이프 라인 구성 요소의 속성에서 해당 프로젝트에 대한 참조를 수동으로 업데이트하는 수동 프로세스입니까?

이것은 빌드 프로세스 컨트롤이 내 버전 번호의 빌드 번호 부분을 가질 수 없음을 의미합니다!

또는 BizTalk 어셈블리의 버전 번호를 더 잘 관리 할 수있는 방법이 있습니까?

답변

2

나는 당신을 실망 시켜서 미안하지만 나는 포기해야했던 정확한 길을 걸어 왔습니다. 나는 그것을 성취하는 것이 가능할 수도 있지만, 바인딩 파일과 다른 XML 파일에 많은 변화를 요구할 것이다.

빌드 단계 (MSBuild 단계 또는 다른 빌드 프레임 워크의 유사한)에서 필요한 변경 사항을 모두 래핑하는 것이 가능할 수도 있습니다. 이 유용 할 수 있습니다.

0

생각지 않았을 수도 있습니다. 아마도 BizTalk 2009 프로젝트는 버전 번호를 변경할 때 참조를 업데이트 할 때 더 잘 작동합니다.

필자는 수동으로 작업을 시작하고 자동화해야하기 시작했습니다. 작업을 수행하기 위해 수정할 필요가있는 장소가 몇 개인 지 깨달았을 때 biiig 단계로 돌아갔습니다. Undo Checkout에 대해 감사드립니다.

내 프로젝트 (다양한 도우미 기능)에 포함 된 표준 C# 클래스 라이브러리가 있는데, 빌드 프로세스 동안 버전 번호를 업데이트 할 수 있으므로 기본적으로 해당 어셈블리를 전체 버전으로 사용하고 있습니다. 신청. 누구나 어떤 환경에 어떤 버전이 있는지 알고 싶다면 해당 어셈블리의 버전 번호를 확인하십시오.

이상적은 아니지만 작동합니다.

+0

나는 MSBuild와의 적절한 통합이 BT 2009의 큰 새로운 기능 중 하나라고 들었습니다. –

+0

캔트가 그때까지 기다려야합니다! 나머지 빌드와 함께 이러한 biztalk 솔루션을 얻는 것이 좋을 것입니다. –

0

우리 프로젝트에서이 작업을 성공적으로 완료했습니다. 세부 정보를 게시 할 수있는 도구 개발자를 얻을 수 있는지 확인합니다 ...

2

현상 제 : * 그에 따라 .btproj,

우리는 비슷한 문제를 가지고 우리는 모든 프로젝트 즉 * .csproj (asssemblyinfo.cs)에 버전 번호를 변경 할 작은 유틸리티를 개발 끝났다. 이 외에도 새 버전의 스키마로 * .btp 파일을 열고 수정합니다. 요약하면, VS.net 도구 메뉴에서이 유틸리티를 구성하고 실행하는 것입니다.

.net lanagauge에서 그런 유틸리티를 개발하는 것은 그리 어렵지 않다고 생각합니다.

경고 : 원래의 인코딩과 동일한 인코딩으로 업데이트 한 후 파일을 저장하는 것을 잊지 마십시오.

건배!

0

이 문제는 파일 참조 (예 : 여기 스키마)로 종속 구성 요소의 최신 버전으로 통합 빌드를 수행 할 때 발생합니다.

어셈블리 버전 업그레이드는 항상 수동으로 수행해야합니다. 즉, 항상 어셈블리 버전의 변경을 담당해야합니다.

빌드 브레이크 문제를 해결할 수있는 가능한 해결책은 최신 버전이 아닌 종속 구성 요소 빌드의 특정 버전에 파일 참조를 제출하고 subst 드라이브와 복사본 스크립트를 사용하여 최신 구성 요소 빌드를 가져 오는 것입니다. 예를 들어

:

SchemaA 어셈블리 버전 1.0.0.0 PipelineA 어셈블리 버전 (예 pipelinecomponent의 XMLValidator)와 1.0.0.0

PipelineA는 SUBST 드라이브 파일 참조 (R 드라이브를 말하고 있습니다 D : \ MyComponents라는 작업 공간에 매핑 됨) 및 SchemaA의 버전 1.0.0.0이 다음과 같이 표시됩니다.

R : \ SchemaA \ 1.0.0.0 \ SchemaA.dll.

copy-script는 SchemaA 빌드 아웃을 로컬로 R 드라이브에 복사합니다.

스키마 A가 버전 1.1.0.0으로 업데이트 될 때 버전 1.0.0.0을 계속 사용하고 스키마의 1.1.0.0 버전을 사용할 수 있으므로 아무런 문제가 없습니다. 업그레이드 할 때 복사 스크립트를 변경하고 파일 참조를 R : \ SchemaA \ 1.1.0.0 \ SchemaA.dll로 바꿔야합니다.