Program Tip

Windows 응용 프로그램을 자동으로 업데이트하는 가장 좋은 방법은 무엇입니까?

programtip 2020. 11. 11. 20:32
반응형

Windows 응용 프로그램을 자동으로 업데이트하는 가장 좋은 방법은 무엇입니까?


Google 크롬은 5 시간마다 자동 업데이트됩니다 . 내 응용 프로그램에서이 정확한 기능을 복제하고 싶습니다. Windows에서이 기능을 구현하는 가장 좋은 방법은 무엇입니까?


이 업데이트 동작을 복제하려면 다음 두 가지가 필요합니다.

  1. 정기적으로 업데이트를 확인하는 업데이트 프로그램입니다. 업데이트가 발견되면 자동으로 설치해야합니다. 대부분의 상용 설치 저작 도구에는 좋은 업데이트 프로그램이 포함되어 있습니다. 업데이트 프로그램을 직접 작성해 볼 수는 있지만 소리만큼 쉽지는 않습니다.

  2. 각 제품 버전에 대한 사용자 별 설치. 사용자 별 설치는 사용자 프로필 폴더 (AppData, Roaming 폴더 등) 및 HKEY_CURRENT_USER에만 데이터를 기록합니다. 프로그램 파일 또는 HKEY_LOCAL_MACHINE이 없습니다.

자동으로 업그레이드를 수행 할 수 있도록 사용자 별 설치가 필요합니다. 컴퓨터별로 설치하는 경우 최신 Windows 버전은 권한 상승 프롬프트를 표시하고 사용자는 무슨 일이 일어나고 있는지 알 수 없습니다.

업데이터

일부 업데이터는 서비스를 사용합니다. 자동 업데이트의 경우 서비스 설치에는 관리자 권한이 필요하기 때문에 실제 솔루션이 아닙니다. 따라서 설치 프로세스 및 후속 업데이트에 권한 상승 프롬프트가 표시됩니다.

또 다른 방법은 사용자 별 업데이터 응용 프로그램을 사용하는 것입니다. 권한 상승이 필요하지 않으며 응용 프로그램 폴더에 설치할 수 있습니다. 이 유형의 업데이터는 예약 된 작업으로 또는 애플리케이션 내에서 실행할 수 있습니다 (애플리케이션이 시작될 때 실행).

두 시나리오 모두 Updater가 자체적으로 업데이트해야 할 수도 있다는 점을 고려해야합니다. 따라서 업데이트를 수행하는 프로세스는 임시 프로세스 여야합니다 (예 : 업데이트 프로그램 응용 프로그램의 임시 복사본). 또한 고도없이 실행되어야합니다. 이것이 서비스가 좋은 생각이 아닌 이유입니다. 업데이트 전에 자체적으로 중지하고 업데이트를 처리하는 임시 프로세스를 사용하고 완료되면 다시 시작해야합니다.

고려해야 할 다른 사항은 다음과 같습니다.

  • 권한 문제 (업데이트 프로세스에 권한 또는 상승이 필요한 경우)
  • 다운로드 위치
  • 업데이트 감지 메커니즘 (업데이터가 새 버전 설치 여부를 감지하는 방법)

업데이트

일반적인 오해는 업데이트가 주 응용 프로그램 EXE와 같은 응용 프로그램 파일이어야한다는 것입니다. 업데이트가 파일 이상을 덮어 써야 할 수 있기 때문에 이것은 드문 경우입니다.

대부분의 업데이트는 설치 패키지 (예 : MSI) 또는 패치 (MSP)입니다. 전체 업데이트 논리를 처리하므로 이것이 가장 좋은 방법입니다.

  • 실행중인 애플리케이션 감지
  • 리소스 업데이트
  • 제품 정보 업데이트 (제어판의 바로 가기, 프로그램 및 기능 애플릿 등)

또한 설치 패키지는 Updater 응용 프로그램을 단순화합니다. 이러한 유형의 업데이트를 사용하는 경우 Updater는 사용 가능한 업데이트를 검색하고 다운로드하여 실행하기 만하면됩니다.

업데이트는 두 가지 방식으로 작동합니다.

Windows Installer는이 두 가지를 모두 지원하므로 MSI 패키지MSP 패치를 사용할 수 있습니다 . 또한 자동 설치를 지원하므로 Updater는 명령 줄 매개 변수를 사용하여 패키지를 실행하기 만하면됩니다.

이러한 패키지는 ALLUSERS 속성을 통해 사용자 별 또는 컴퓨터 별 설치도 지원 합니다.

배포 업데이트

업데이터와 일부 업데이트 패키지를 결정한 후 배포 메커니즘도 필요합니다.

  • 업데이트를 사용할 수 있음을 업데이트 프로그램에 알리는 방법 (예 : 서버의 업데이트 정보 파일)
  • 업데이트가 설치되었는지 여부를 감지하는 방법 (따라서 한 번만 설치됨)

이 모든 것은 그리 쉬운 일이 아닙니다. 이것이 많은 제품이 타사 업데이터를 사용하는 이유입니다. 일부 상용 설치 저작 도구도 패키지에 대한 업데이터를 제공합니다.

커스텀 업데이터는 투자 가치가 있기 때문에 많은 제품을 보유한 대기업에서 주로 사용합니다.


정확히 동일한 기능을 원할 경우 가능합니다. 구글은 그것을 오픈 소스 화했다.

https://github.com/google/omaha


winsparkle- https: //github.com/vslavik/winsparkle을 사용해보세요 . C ++ 라이브러리입니다.

참고 URL : https://stackoverflow.com/questions/7395609/what-is-the-best-way-to-auto-update-a-windows-application

반응형