이것은 모든 솔루션에 확실한 승자가없는 많은 단점이 있기 때문에 쉬운 솔루션이없는 문제가있는 영역입니다.
한 가지 옵션은 .dll 파일 만 바꾸는 것입니다. 이렇게하면 어셈블리의 서명이 방지되고 (실행 파일 자체를 업데이트하지 않기 때문에) 거의 모든 응용 프로그램 논리가 dll에 상주하도록 응용 프로그램을 구성해야합니다. 장점은 exe 자체에서 업데이트를 확인하고 사용 가능한 경우 다운로드 할 수 있지만 dll이 다른 위치 (예 : appdata의 응용 프로그램 플러그인 폴더)에 데이터로 저장되는 경우에만 가능하다는 것입니다.
다른 옵션은 로컬 관리자 권한으로 실행되는 Windows 서비스를 사용하여 업데이트를 다운로드하고 설치하는 것입니다. 이는 다른 Windows 서비스 인 afaik에 대해서도 사용자 개입없이 발생할 수 있습니다. 여기서 트릭은 업데이트 서비스를 실행 상태로 두지 않고 시작 (또는 시작될 때 또는 닫힌 상태) 중 하나에서 실제 응용 프로그램을 시작한 다음 사용자가 다운되는 것을 방지하기 위해 업데이트를 설치 한 후에 서비스를 중지하게하는 것입니다 시스템에 또 다른 업데이트 서비스가 있습니다.
마지막으로, "완전히 무인 된"부분을 삭제하는 것을 진지하게 고려해야합니다. 사용자는 간헐적 인 시작 지연이 문제가 될 수 있으며 현재 수행중인 의사 소통이 해를 끼치 지 않는다는 것을 알 수 있습니다. 필자는 특히 "새로운 버전이 발견되었습니다 - 설치 (지금) (종료) (나중에)"라는 말을 시작 대화 상자에 표시하는 솔루션을 좋아해 지연을 원할지 여부를 완전히 제어 할 수 있습니다. 내가 아는 모든 포커 클라이언트와 같은 일부 응용 프로그램은 서버 측 소프트웨어와 동기화되어야하며 사용자에게이 옵션을 제공하지 않지만 계속 진행중인 내용을 알 수 있도록 "업데이트 진행 중"대화 상자를 표시합니다. 설치가 자동으로 진행되는 한 나는 프롬프트에 대해 걱정하지 않을 것입니다.
'특히 새로운 버전이 발견되었습니다 - 설치 (지금) (종료) (나중에)'라는 대화 상자를 표시하는 솔루션이 마음에 들었습니다. - 이것은 개인이 힘을 사용하는 경우에만 좋은 아이디어 일 수 있습니다 사용자.엔터프라이즈 환경에서는 일반적으로 사용자에게 기술 결정을 요청하는 것은 좋지 않습니다. – Ivan
이반 : 동의합니다. 엔터프라이즈 업데이트는 중앙 집중화되고 자동으로 수행되어야합니다. –