2010-12-21 3 views
1

C# (4.0)로 작성된 분산 응용 프로그램이 있습니다. 새로운 릴리스를 만들 때마다 모든 클라이언트를 업데이트하는 것은 실질적인 작업이되었습니다. 일부 경우에 내 소프트웨어를 구입 한 조직은 고객을 업그레이드하지 않으므로 ClickOnce 방식으로 가고 싶지 않습니다.내 클라이언트의 자동 업데이트를 어떻게 설계합니까?

고객을 위해 어떻게 업데이트 메커니즘을 구축합니까? 내 생각은 최신 버전의 서버를 확인하고 필요한 경우 업데이트하고 새 버전을 시작하는 일종의 실행 프로그램 응용 프로그램을 구현하는 것입니다. 사용할 수있는 업데이트가 없으면 간단히 클라이언트 응용 프로그램이 시작됩니다. 그런 다음 클라이언트가 실행해야하는 런처 응용 프로그램을 업데이트해야하는 문제가 있습니까?

어떻게 적절하고 강력한 방법으로 고객이 업데이트를 위해 클라이언트를 구성 할 수 있는지 확인한 다음 클라이언트가 완전히 자율적으로 작동하도록 허용하려면 어떻게해야합니까? 즉, 사용자 감독없이.

건배,

답변

0

명확하게 분리 된 다중 계층 응용 프로그램을 만듭니다. 모든 비즈니스 로직을 classLibrary에 추가하십시오. 이 라이브러리를 응용 프로그램에 대한 참조로 추가하십시오. 그런 다음 UI에 checkFunction을 만듭니다. (예 : webService를 호출하여 버전 번호 확인)

원격 버전> localVersion의 경우 새 DLL을 다운로드하고 (필요한 경우 GAC에 등록) 응용 프로그램을 다시 시작해야합니다.

당신의 UI 로직이 너무 변경된 경우, 완전히 새로운 설치 파일을 다운로드를 시작하거나 폐쇄에 Process.Start를 호출하는 수요와 사용자 (removeOlder 버전 = TRUE로) .. 몇 가지 아이디어

을에 주제 - 도움이되기를 바랍니다.

0

당신은 ClickOnce를 사용하고 단순히 CheckForUpdate 비활성화 할 수 있습니다 : MSDN : Disable Clickonce Default Updater합니다.

+0

@ H4mm3rHead : 물론이 앱이 업데이트 될지 여부를 결정하기 위해 앱이 처음 실행될 때 사용자에게 선택권을 허용 할 수 있습니다. – LaGrandMere

0

오래되었지만 설명 된 기능이있는 Updater Application Block에서 아이디어와 코드 조각을 가져올 수 있습니다.

관련 문제