2010-03-31 3 views
1

Visual Studio .NET을 사용하여 두 클라이언트 응용 프로그램에서 공유 할 구성 요소를 만듭니다. 결국이 구성 요소의 새 버전을 배포 할 계획입니다. 그러나 모든 새 버전이 두 클라이언트 응용 프로그램과 호환되는 것은 아닙니다. 구성 요소와 클라이언트 응용 프로그램을 배포 할 때 단일 클라이언트 응용 프로그램의 구성 요소를 업그레이드 할 수 있어야합니다. 또한 구성 요소의 새 버전을 배포 할 때 구성 변경의 필요성을 최소화해야합니다. 이 목표를 달성하기위한 가능한 방법은 무엇입니까?.NET 구성 요소 배포 (단일 클라이언트 응용 프로그램에만 구성 요소 업그레이드)

답변

0

전역 어셈블리 캐시에 배포하는 경우 어셈블리 버전마다 다른 AssemblyVersion을 지정하고 나란히 설치하면됩니다. 버전 1에 대해 빌드 된 응용 프로그램은 버전 1에 대해 계속 실행되며 버전 2에 대해 빌드 된 응용 프로그램은 버전 2에 대해 계속 실행됩니다. <bindingRedirect> 구성 요소를 사용하여 개별 응용 프로그램을 리디렉션 할 수 있습니다. (게시자 정책은 모든 응용 프로그램에 적용되므로 app.config를 변경해야합니다.)

GAC를 사용하지 않고 EXE와 동일한 디렉토리에 DLL을 배포하는 경우, side-by-side 버전 화에 대해 걱정할 필요가 없습니다. 최신 DLL에 대해 EXE를 다시 작성할 수없는 경우 위에서 설명한대로 리디렉션을 지정해야합니다.

이 모든 것이 혼란스럽게 들린다면, 당신 말이 맞습니다. 가능한 경우, ClickOnce를 사용하여 응용 프로그램을 배포하는 방법을 살펴보고 업데이트를 배포하는 프로세스를 간단하게 만듭니다. ClickOnce 배포 된 응용 프로그램은 GAC에 설치되지 않으며 정의한 정책에 따라 자동으로 업데이트를 확인합니다.

0

가장 좋은 방법은 빌드 기호를 설정하고 #ifdef App1 및 #ifdef App2를 사용하여 코드 조각을 사용하거나 사용하지 않도록 설정하는 것입니다. 여러 프로젝트 나 지점 또는 이와 유사한 것을 관리 할 필요가 없습니다. 코드베이스가 비교적 유사하게 유지된다고 가정 할 때, 원하는 것을 성취하기위한 최소한의 번거 로움

1

옵션은 제한되어 있습니다.

구성 요소와 연결하는 경우 두 응용 프로그램은 릴리스 될 때 최신 버전을 사용합니다.

특정 버전의 구성 요소에 연결하면 변경 내용이 손상되는 문제를 해결할 수 있지만 적용 가능한 경우 최신 버전에 연결하기 위해 응용 프로그램 구성을 업데이트해야한다는 것을 의미합니다.

구성 요소에 중요한 변경 사항이 도입되는 이유를 설명해야한다고 생각합니다.