2012-02-26 3 views
4

Windows 응용 프로그램에 자동 자동 업데이트를 사용하는 방법을 찾고 있습니다. 업데이트 프로세스는 변경된 파일 만 다운로드하고 바꿔야합니다. 그래서, 그것을 내 응용 프로그램과 통합 할 계획입니다. 실행중인 실행 파일 (또는 해당 폴더)의 이름 바꾸기/이동이 가능하다는 점을 감안할 때 응용 프로그램을 사용하여 자체 업데이트를 수행 할 수 있습니까? 실행중인 실행 파일의 이름 바꾸기/이동이 위험합니까? 별도의 업데이터 프로그램을 사용하여 응용 프로그램 자체를 업데이트하는 것의 장점은 무엇입니까?별도의 프로그램을 사용하지 않고 Windows 응용 프로그램 자동 업데이트

감사합니다.

+0

사용자는 종종 자동 자동 업데이트를 원하지 않으며 권한/권한/UAC로 인해 일반적으로 사용할 수 없습니다. 새로운 업데이트 계획이 필요합니다. –

+1

응용 프로그램은 항상 전체 액세스 권한이있는 로컬 응용 프로그램 데이터 (자동 자동 업데이트를 지원하기 위해)에 설치됩니다. – simha

답변

0

Windows 운영 체제에서는 실행중인 응용 프로그램을 덮어 쓸 수 없습니다. 그러기 위해서는 또 다른 응용 프로그램이 필요합니다. 내가 가진 한 가지 프로세스는 내 다운로더 응용 프로그램 다운로드 파일을 가지고 있지만 사용중인 경우 확장자 .update가 주어집니다.

내 응용 프로그램을 시작할 때 폴더와 하위 폴더에서 확장명을 가진 파일을 찾습니다. 하나를 찾으면 패치 응용 프로그램을 실행하고 종료합니다. 패치 프로그램은 프로그램 파일이 비어있는 것을 기다린 다음 .update 파일을 응용 프로그램 파일의 맨 위로 이동하고 응용 프로그램을 다시 시작합니다.

업데이트가 있지만 사용자가 알아 차리지 못할 때 실행하려면 몇 초가 걸립니다.

추가 : 별도의 업데이터 프로그램의 장점은 모듈성과 청결 함입니다. 업데이터 소프트웨어를 재사용 할 수 있으며 코드가 응용 프로그램의 핵심 요소가 아닐 수도 있습니다. 또한 멀티 스레드 화하지 않으면 응용 프로그램의 상호 작용에 영향을 미치게됩니다.

많은 정적 프로그래머가 (정적 빌드를 사용하여) 배치에 대한 모 놀리 식 접근법을 사용하는 것을 보았습니다. 그렇지만 모듈성은 나에게 묻는다면 여전히 큰 장점이 있습니다.

+2

실행중인 실행 파일 수정/바꾸기/삭제가 작동하지 않을 수 있지만 xp, vista 및 windows 7에서 이름 바꾸기/이동이 가능합니다. – simha

+0

대부분의 경우 응용 프로그램은 사용 중 업데이트 할 수 없기 때문에 잠재적 인 영향을 미치지 않습니다. 응용 프로그램의 상호 작용이 문제가 될 수 있습니다. –

1

응용 프로그램을 자체적으로 업데이트 할 때의 주요 단점은 모든 비동기 I/O가 완료되고 모든 사용자 인터페이스 요소가 닫히고 모든 데이터가 디스크로 플러시됩니다. 일반적으로 별도의 업데이터를 사용하면 업데이트가 시작되기 전에 응용 프로그램 프로세스가 종료되므로 업데이트 프로세스를 방해하거나 간섭을 일으키지 않을 수 있습니다.

별도의 빌드가 필요하지 않은 경우 새 콘텐츠를 다운로드 한 후 자체 콘텐츠 사본을 만들도록 응용 프로그램을 디자인 할 수 있습니다 (또는 업데이트 프로그램 구성 요소 자체가 업데이트 된 경우 복사본을 추출 할 수 있음))를 임시 위치에 저장하고이 복사본을 업데이트 모드로 시작합니다. 시작시 업데이트 인스턴스 또는 일반 인스턴스 중 무엇인지 여부를 결정하는 응용 프로그램은 설계하기 쉽고 위에서 언급 한 문제가 없습니다.

관련 문제