문제

이 질문은 이미 여기에 답이 있습니다.

우리는 여러 WCF 서비스, ASP.NET MVC 애플리케이션, 관리 도구 (Windows Forms Apps)로 구성된 정말 복잡한 시스템을 개발하고 있습니다. 그 중 일부는 여러 서버에서 실행되는 인스턴스가 있습니다. 우리는 그러한 시스템에 대한 좋은 자동 업데이트 솔루션을 찾고 있습니다. 아마도 작업을 수행 할 별도의 자동 업데이트 응용 프로그램 (서비스) 또는 설치된 모든 인스턴스의 버전에 대해 알리고 원격으로 업데이트를 수행하는 중앙 집중식 관리 응용 프로그램이 필요할 것입니다. 이 목적을 위해 만들어진 좋은 제품/라이브러리가 있습니까?

도움이 되었습니까?

해결책

개인적으로 나는 모든 종류의 자동 업데이트에 대해 매우 간단한 방법론을 사용하고 있습니다.

  • 설치자가 있습니다
  • 새 버전을 확인하고 (간단한 웹 클라이언트를 확인하고 숫자를 현재 어셈블리 버전과 비교)
  • 버전이 더 높은 경우 최신 설치 프로그램을 다운로드하는 경우 (보안상의 이유로 SSL 이상이어야 함)
  • 다운로드 설치 프로그램을 실행하고 응용 프로그램을 닫으십시오. (이 단계에서는 설치 프로그램이 관리자가 되려면 관리자 권한이 있어야합니다).

설치 프로그램은 나머지를 처리해야합니다. 이렇게하면 항상 최신 버전과 최신 버전의 설치 프로그램이 있습니다.

다른 팁

내가 포함하는 완전한 업데이트 솔루션이있는 회사의 창립자라고 말하면서 시작하겠습니다.

Wyupdate는 모든 Vista/Windows 7 UAC 문제와 복잡한 소프트웨어를 업데이트하려고 할 때 필연적으로 팝업되는 모든 파일 권한 문제를 처리합니다.

우리는 또한 제공합니다 오픈 소스 프로젝트를위한 Wybuild에 대한 무료 라이센스, 그러나 자신의 업데이트를 구축하려는 경우 소스 코드를 자유롭게 식발 할 수 있습니다.

즉, 자신의 업데이트를 구축하려면 여기에 몇 가지 팁이 있습니다.

자신만의 업데이터 구축

시작하기에 좋은 곳은 Wyupdate 그리고 AutomaticUpdater 소스 코드 위에서 언급했습니다. 당신은 그것을 식인질 화하고 자신의 목적으로 사용할 수 있습니다. 포함 된 알고리즘 중 일부는 다음과 같습니다.

  • 전체 Windows Vista / Windows 7 UAC 지원
  • 제한된 사용자가 자격 증명이 있는지 확인한 다음 업데이트 할 수있는 기능
  • Wonky Corporate Inernet 지원. (회사와 함께 일한 적이 있다면 이것은 실제 문제입니다).
  • 파일의 빠른 추출, 패치 및 설치.
  • 레지스트리 지원.
  • 사용자의 오류 또는 취소시 파일 및 레지스트리 롤백 및 레지스트리
  • 자기 업데이트 (남은 파일 없음)

우리는 또한 여기에 파일 사양.

자동 업데이트

자동화해야하기 때문에 요구 사항이므로 우리가 어떻게 우리와 함께하는지 알려 드리겠습니다 AutomaticUpdater 컨트롤.

우리는 명명 된 파이프를 사용하여 독립형 업데이트 (Wyupdate)와 프로그램 양식에 앉아있는 자동 업데이트 컨트롤간에 통신합니다. Wyupdate는 자동 업데이트에 대한 진행 상황을보고하며 자동 업데이트는 Wyupdate에게 진행 상황을 취소하여 다운로드를 시작하고 추출을 시작하도록 지시 할 수 있습니다.

이렇게하면 업데이트가 응용 프로그램과 분리되어 있습니다.

실제로, 우리가 사용하는 정확한 명명 된 파이프 C# 코드는 내가 조금 뒤로 쓴 기사에 포함되어 있습니다. Google Chrome과 같은 멀티 프로세스 C# 앱.

다음은 Winforms 및 WPF 앱에 대한 특정 요구 사항을 해결하기 위해 쓴 오픈 소스 솔루션입니다. 일반적인 아이디어는 가능한 가장 낮은 오버 헤드에서 가장 큰 유연성을 갖는 것입니다.

그래서, 완성 매우 쉬우 며 라이브러리는 동기화 작업을 포함하여 거의 모든 것을 수행합니다. 그것은 또한 매우 유연합니다, 어떤 작업을 수행 할 것인지, 어떤 조건에 대해 결정할 수 있습니다 - 당신은 규칙을 만들거나 이미 존재하는 규칙을 사용합니다. 마지막으로는 적어도 지원입니다 모든 업데이트 소스 (웹, Bittorrent 등) 및 기간 피드 형식 - 구현되지 않은 것은 무엇이든 자신을 위해 글을 쓸 수 있습니다.

콜드 업데이트 (응용 프로그램 재시작 필요)도 지원되며 작업에 "핫 스웨이"가 지정되지 않는 한 자동으로 수행됩니다.

이 보드는 크기가 70kb 미만인 하나의 DLL로 줄어 듭니다.

자세한 내용 http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/

코드가 있습니다 http://github.com/synhershko/nappupdate (Apache 2.0 라이센스에 따라 라이센스)

더 많은 시간을 할 때 더 많은 것을 확장 할 계획이지만 솔직히 당신은 현재 지원하지 않는 모든 것에 대해 스스로를 빠르게 향상시킬 수 있어야합니다.

자동 업데이트 WCF 서비스 및 ASP.NET 웹 사이트는 파일의 "Hot-Swap"과 필요한 경우 "iisreset"작업을 사용하여이를 위해서도 수행 할 수 있어야합니다.

관리자 도구를 위해 ClickOnce.

우리는 소수의 옵션을 조사하고 사용하기로 결정했습니다. Applife 업데이트 Enterpise 프로젝트를위한 도서관.

Applife 업데이트는 .NET 앱에 대한 자동 업데이트 기능을 빠르고 쉽게 추가 할 수 있지만 포괄적 인 API 때문에 유연합니다.

웹 사이트의 전체 기능 목록 및 일부 데모 비디오를 참조하십시오.

간단한 WPF 응용 프로그램의 경우 Xcopy 설치를 사용하는 응용 프로그램의 경우 사용할 수 있습니다. 이 Appupdater 모듈. 간단한 WPF 앱에 업데이트 기능을 추가하기 위해 몇 줄의 코드 라인에 불과한 하나의 소스 모듈입니다.

무료입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top