0

약간 깔끔한 프로젝트 구조가있는 상속 된 일부 작업을하고 있습니다. 일부 프로젝트는 GAC에 설치 될 것으로 예상되는 PIA (Primary Interop Assembly)를 참조합니다. (요약하면) "이 프로젝트를 빌드하기 전에 먼저 X, Y 및 Z를 빌드하고 수동으로 GAC에 설치하라"는 메모가 솔루션 폴더에 있습니다. 음, 자동화 나 지속적인 통합에 도움이되지 않습니다. 그렇습니까?PIA를 참조하여 빌드 서버에서 빌드 작동

이 빌드를 TeamCity 빌드 서버에서 사용하려면 빌드 에이전트가 GAC (전역 어셈블리 캐시)에 설치된 PIA가없는 컴퓨터에서 실행됩니다. 따라서 빌드가 실패합니다. 나는이 PIA를 모든 빌드 에이전트 시스템에 설치하고 싶지 않습니다. 자체 빌드가 필요하므로 깨끗한 소스 코드 체크 아웃, 수프에서 빌드까지 빌드 할 수 있습니다. 그래서 질문은 두 가지입니다.

  1. GAC에 의존성이있는 경우 빌드가 자체 포함되어 손상되지 않도록 어떻게 구성 할 수 있습니까?
  2. (1) 성공한 경우 PIA를 GAC에 설치해야하는 최종 사용자 데스크톱에 어떻게 영향을 줍니까?

Stack Overflow 커뮤니티의 전문가 조언에 감사드립니다.

답변

0

나는 단순히이 완료되면, 그것은 GAC에서 제거 등 GAC에 X, Y 및 Z를 설치 한 후 빌드를 완료, 단위 테스트를 실행하는 빌드 단계,

을 추가합니다.

빌드를 '자체 포함'하는 유일한 방법은 설치된 GAC에 따라 중단하는 것입니다. 이것은 빌드 서버 구성 문제가 아니며 어셈블리 아키텍처 문제입니다. 가능한 경우 다른 프로젝트의 bin 폴더를 빌드 할 때 복사 한 정규 어셈블리 참조를 만듭니다.

이렇게하면 최종 사용자 배포가 쉽습니다. GAC 설치없이 Click-Once 배포를 활용할 수 있습니다.

+0

아담 감사합니다. 유감스럽게도 구성 요소는 외부에서 개발 된 많은 시스템에서 사용할 실제 공유 구성 요소이므로 최종 사용자 시스템의 GAC에 배포해야합니다. 그래서 적어도 deplyment를 위해, 나는 GAC를 사용해야한다. –

관련 문제