본문 바로가기

IT/Dot Net

[펌]ClickOnce - Uninstall

지난 두달 정말 다사다난한 기간이였다...

안팎으로 한꺼번에 많은 일들이 생겨 정신이 한개도 없는...

오랜만에 블로그를 쓰게되는군...

오늘 내용은 저번에도 언급했던 ClickOnce 삭제 메뉴 맨들기~

ClickOnce 설치된 프로그램을 제어판의 프로그램추가/삭제에서 하지 말고 메뉴를 강제로 만들어서 쓰자... 이런 내용...

코딩은 간단하다. 바로가기 만들기의 소스에 약간의 코딩을 추가하여 시작/프로그램의 메뉴에 삭제실행 파일을 만들고 안에 stream 으로 삭제명령을 적는다는 이런 내용...

프로그램추가/삭제 내부적으로 사용되는 명령을 강제로 실행해주는 뿐이다.

   

바로가기때와 마찬가지로

함수안에 추가만 해주도록 하자.

   

1. 삭제실행파일 존재여부 체크


// 삭제실행파일 경로

string delFilePath = System.Environment.GetFolderPath(Environment.SpecialFolder.StartMenu) + @"\Programs\" + companyName + "\Uninstall.bat";

if (!System.IO.File.Exists(delFilePath)) {
    // 파일이 없으면 맨들어주는거다!!
}

2. 삭제실행파일 껍데기 만들기(Uninstall.bat)


StreamReader reader = new StreamReader(startDir);
 string result = reader.ReadToEnd();
      reader.Close();
      result = result.Substring(result.IndexOf("#") + 1);
      Encoding _encoding = Encoding.GetEncoding(949);
      StreamWriter writer = new StreamWriter(delFilePath
, false, _encoding);

3. 실제 명령줄 write 하기


// CommandLine 숨기고

 writer.WriteLine("@echo off");

// 삭제명령어 쓰고
 writer.WriteLine(@"start %windir%\system32\rundll32”
  +.exe dfshim.dll,ShArpMaintain “+result);

// 빠져나오고
 writer.WriteLine(@"exit");
 writer.Close();

여기다가 추가로 바탕화면에 생성된 파로가기파일을 del 삭제해주고 bat 파일도 del 삭제해주는걸 넣어주는 쎈스~

   

이렇게 해서 만들어진것은 다음 그림과 같다.

파일명은 원하는대로 맨들고~

   

파일을 클릭하면 삭제confirm 창이 뜨고 삭제가 수행된다.

...깔끕하게 삭제...물론 바탕화면 파일도 삭제...

내가 직접 탐색기에서 폴더 삭제했다 의심하지 말기를...--;;

이상으로 ClickOnce 확장은 접어두도록 해야겠다.

이제 TFS 프로그래밍에 대한 이야기를 해야하기 때문에...

원본 위치 <http://blog.naver.com/PostView.nhn?blogId=parky15&logNo=40051179921&categoryNo=2&viewdate=&cpage=1&listtype=0>