반응형
프로그램 업그레이드 방법
설치or실행 파일을 다운로드 후 실행
WebClient 를 사용하여 웹 상의 파일을 다운로드 하여 실행하는 소스입니다.
업그레이드 버튼을 클릭하면 WebClient 를 생성하여 URL 의 실행 파일을 다운로드 합니다.
다운로드 상황은 DownloadProgressChanged 이벤트를 이용하여 Progressbar 에 표시하게 됩니다.
다운로드가 완료되면 DownloadFileCompleted 이벤트를 실행하여 다음 action 을 지정합니다.
DownloadFileAsync 를 실행하여 비동기로 파일을 다운로드를 시작합니다.
다운로드가 완료되면 다운로드 된 파일을 실행하고 현재 프로그램을 종료합니다.
현재 프로그램의 업그레이드 설치 파일이라면 현재 프로그램을 종료해야 설치가 되기 때문입니다.
아래는 소스 입니다.
// 서버의 파일을 다운로드 받기
private void radButton_upgrade_Click(object sender, EventArgs e)
{
try
{
using (WebClient fileDownloader = new WebClient())
{
string tmpSetupPath = Path.Combine(Environment.GetEnvironmentVariable("TEMP"), "upgradeSetupFile.exe");
fileDownloader.DownloadProgressChanged += fileDownloader_DownloadProgressChanged; // 다운로드 진행 상황 표시하기 위해
fileDownloader.DownloadFileCompleted += fileDownloader_DownloadFileCompleted; // 다운로드가 완료되면 실행
fileDownloader.DownloadFileAsync(new Uri(GV_UPGRADE_URL), tmpSetupPath, tmpSetupPath);
// GV_UPGRADE_URL 는 서버에 올라가있는 설치파일의 주소. 예: http://hello-bryan.com/setupfile.exe
}
}
catch (Exception ex)
{
log.Error("오류 : "+ex.Message);
return;
}
}
void fileDownloader_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
string tmpSetupPath = e.UserState.ToString();
log.Debug("다운로드 완료 : " + tmpSetupPath);
Process.Start(tmpSetupPath); // 다운받은 파일을 실행하고
this.DialogResult = System.Windows.Forms.DialogResult.OK; // 현재 프로그램을
this.Close();
}
void fileDownloader_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
radProgressBar_update.Value1 = e.ProgressPercentage;
}
728x90
반응형
'C# 기술' 카테고리의 다른 글
folder 권한 주며 생성하기 Directory security (0) | 2019.02.09 |
---|---|
System.InvalidProgramException JIT Compiler encountered an internal limitation (0) | 2019.02.09 |
async 와 await ( Microsoft 설명 ) (0) | 2019.01.28 |
LINQ join 예제 (0) | 2019.01.28 |
LINQ 가이드 ( Microsoft ) (0) | 2019.01.28 |
댓글