2011-01-12 3 views
4

Google 크롬은 백그라운드에서 자동으로 업데이트됩니다. 사용자 작업은 필요하지 않습니다. 나는 이것이 매우 훌륭하고 사용자에게 친숙한 응용 프로그램 업데이트 방법임을 알게되었습니다. 누구나 이것이 기술적으로 어떻게 완료되는지 정확하게 알고 있습니까? .NET (WPF) 응용 프로그램에 대해 동일한 작업을 수행 할 수 있다면?.NET 응용 프로그램을 Chrome과 같은 백그라운드에서 업데이트 할 수 있습니까?

답변

0

ClickOnce는 백그라운드에서 실행되지 않기 때문에 끔찍한 해결책입니다. 시작시에만 확인하고 시작 시간을 상당히 늦출 수 있습니다.

크롬은 응용 프로그램이 실행되는 동안 주기적으로 확인하고, 자동으로 업데이트를 다운로드 한 다음 "확인, 왜 안되"라고 말하면 설치합니다.

사용자의 관점에서 보면 지연이 거의없고, 물건 만 계속 칙칙폭폭 사용합니다.

섀도 복사본이 최선의 방법입니다. 정기적으로 웹 서버에서 업데이트 된 구성 요소를 확인하고 필요에 따라 다운로드하는 시간 초과 이벤트를 작성해야합니다. 섀도 복사본은이를 대체하는 방법입니다.

모듈화를 위해 시스템을 설계하는 것도 도움이됩니다. 응용 프로그램 실행과 관련된 모든 단일 파일을 다운로드하지 않고 핵심 영역을 독립적으로 업데이트하여 최종 사용자의 페이로드를 줄 이도록 설계 할 수 있습니다 그들이 업데이트를 다운로드 할 때.

더 극단적 인 솔루션을 위해 다양한 공급 업체가 InstallShield와 같은 업데이트 서비스를 제공합니다.

+3

ClickOnce는 응용 프로그램이 시작된 후 업데이트를 확인하도록 설정할 수 있습니다. 이러한 모든 단계를 수동으로 수행하기 위해 API를 사용할 수도 있습니다. – ZippyV

+0

ShadowCopy에 대해 아직 확실하지 않습니다. 예를 들어 최신 DLL을 업데이트하고 appliation을 종료 할 때 이전 DLL로 복사 할 폴더를 만들 수 있습니다. 그러나 나는 확실히 ShadowCopy를 점검 할 것입니다! ClickOnce는 괜찮은 것처럼 보일 지 모르지만 업데이트를 설치하려면 사용자 확인이 필요합니다. 정확하게 피하려고합니다. Google은 실제로 Windows (Windows의 경우)에서 업데이트를 확인하고 올바른 파일을 업데이트하는 프로세스를 실행합니다 (http://googlesystem.blogspot.com/2009/07/google-update-always-running-in). html. – Peter

1

예. ClickOnce을 사용하거나 ShadowCopying을 사용할 수 있습니다.

다음은 웹 서버의 예를 보여주는 좋은 설명이있는 ShadowCopying의 예입니다. 그러나 동일한 기술을 데스크톱 응용 프로그램에 적용 할 수 있습니다. 또 다른 좋은 예는 here입니다.

관련 문제