문제

제품 응용 프로그램을 구축하는 데 사용되는 일반적인 프레임 워크 어셈블리 세트를 개발하고 유지 관리 할 책임이 있습니다. 이 어셈블리는 비교적 새롭고 새로운 기능이 구현됨에 따라 플럭스 상태입니다. 결과적으로, 재건축 및 재분배되는 것은 드문 일이 아닙니다. 어셈블리가 안정되어 있기 때문에 이것이 감소 할 것으로 예상하지만, 오늘날의 것입니다.

현재 어셈블리는 개발 프로젝트가 동일한 어셈블리를 참조 할 수있는 공통 폴더에 배치됩니다. 업데이트를 적용하는 것은 파일을 교체하는 것만 큼 간단하며 개발 프로젝트가 다음에로드 및 빌드 될 때 변경 사항을 자동으로 선택합니다.

내가 가진 문제는 프레임 워크에 구축 된 어셈블리의 여러 "레이어"가있을 수 있다는 것입니다. 예를 들어, 모든 응용 프로그램에서 공유하고 모든 서버 응용 프로그램에서 공유하는 모든 응용 프로그램에서 공유하는 핵심 라이브러리가 있습니다. 프레임 워크 어셈블리가 업데이트 될 때마다 모든 의존성을 재건해야하므로 매우 큰 작업이됩니다. 나는 GAC를 사용할 수 있다고 생각하지 않습니다. 왜냐하면 모든 개발자가 새 버전이 출시 될 때마다 모든 개발자가 시스템을 업데이트해야하기 때문입니다.

게시자 정책을 조사했지만 이것이 몇 가지 이유로 내 문제를 해결할 것이라는 의문이 있습니다.

  • 우선, 프레임 워크 어셈블리를 재건 할 때마다 파일을 재현하고 싶지 않습니다.이 프로세스를 자동화 할 수있는 방법이 있습니까?

  • 어셈블리가 GAC로 들어가야한다면 분명하지 않습니다. 내가 말했듯이, 개발자가 새 버전의 어셈블리를 출시 할 때마다 개발자가 다시 설치, 업데이트 등을 강요하고 싶지 않습니다.

  • 네트워크 설정 및 구성을 제어 할 수 없으므로 파일을 네트워크 공유에 배치하여 전체 "신뢰"문제를 피해야합니다. 또한 많은 개발자들이 때때로 연결된 방식으로 작동하며 분리 할 때 파일을 사용할 수 있기를 원합니다.

목표는이 어셈블리를 소비하는 응용 프로그램 개발자에게 투명하게 업데이트하는 것입니다. 의심 할 여지없이 응용 프로그램이 설치 될 때이 어셈블리를 대상 시스템의 GAC에 설치하지만 개발 목적으로 그렇게하고 싶지는 않습니다. 또한 각 응용 프로그램의 솔루션에 프로젝트를 다른 팀에서 개발하므로 프로젝트를 포함시키는 것도 합리적이지 않습니다.

나는 이러한 요구 사항에 대해 혼자라고 상상할 수 없으며 누군가가 나를 솔루션으로 안내하기 위해 자신의 경험과 지혜를 공유 할 수 있기를 바랍니다. 감사!

도움이 되었습니까?

해결책 2

Nuget 은이 문제를 해결했습니다. 공유 어셈블리, 프레임 워크 등을 네트워크의 개인 저장소에서 NUGET 패키지로 배포함으로써 업데이트를 쉽게 게시하고 클라이언트 코드에 적절하게 적용 할 수 있습니다.

다른 팁

어셈블리를 GAC에 설치할 필요는 없습니다. 설정에 아무것도 필요하지 않습니다.

여기서 주요 문제는 어셈블리가 모든 종속성을 재건하도록 강요 하고이 모든 것이 공유 위치에 배치되도록하는 것입니다.

여기서 가장 쉬운 옵션은 아마도 공유 어셈블리 중 하나가 업데이트 될 때마다 모든 것을 재구성하는 빌드 서버를 갖는 것입니다. 또한 빌드가 체크인 될 때마다 코드 메트릭, 정적 코드 분석 등과 같이 빌드에서 다른 "스크립트"를 잠재적으로 실행할 수 있다는 이점이 있습니다.

그런 다음 빌드 서버 복사를 공유 위치까지 모든 내용으로 만들 수 있습니다. 프로젝트가 공유 위치에서 참조하고 특정 버전으로 제한하지 말라고 명시 적으로 말하면 모든 것이 잘 작동해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top