2012-08-05 4 views
0

제거 프로그램을 만들려고합니다. 기본적으로 제거 프로그램이 들어있는 프로그램 파일의 디렉토리를 제거 할 수 있어야합니다.자체 삭제 실행 파일 (제거 프로그램)

나는 임시 폴더에 자체 복사본을 만들고, 프로그램 폴더에서 실행중인 제거 프로그램을 temp에서 제거 프로그램을 열고 제거를 계속하는 프로그램 자체를 닫으려고했습니다. 난 당신이 당신이 할 수있는 것은, 그렇게는 안 말 모두에 동의하더라도

+8

MSI는 프로그램을 제거합니다. msiexec.exe를 삭제하지 마십시오. 설치 프로젝트를 진행하기 만하면 휠을 다시 발명하지 마십시오. –

+1

알았어.하지만 내 방식대로하고 싶다. 자동 삭제 exe와 같은 작업을 수행하려면 어떻게해야합니까? – user1071461

+1

Visual Studio에서 설치 프로젝트를 만들 수 있습니다. 그렇지 않으면 bat 파일을 실행하여 실행 파일을 실행 한 다음 실행 파일, bat 파일 및 폴더를 삭제할 수 있습니다. – Casperah

답변

1

내가 임시 폴더 제거 프로그램을 삭제하는 방법에 문제가

, ... :

  1. 프로그램이 작업중인 OS의 임시 폴더에 실행 파일 (및 구성 파일)을 생성하게하십시오.
  2. 프로그램을 독립적 인 프로세스로 시작한 다음 종료하십시오.
  3. 그 실행 파일은 실제 설치 프로그램을 다시 호출합니다.
  4. 설치가 완료되면 임시 실행 파일이 설치 파일을 삭제할 수 있습니다.
  5. 프로그램의 유일한 추적이 임시 폴더에 있으므로 결국이 자동으로 지워집니다.
1

체크 아웃 : http://www.catch22.net/tuts/self-deleting-executables

그는 여러 솔루션을 가지고 -하지만 대부분 C++ 코드를위한.

현재 C#에서 "DELETE_ON_CLOSE"메소드를 구현하려고합니다.

모든 nay-sayers에게 의견 : MSI는 모든 경우에이 문제를 해결하지 못합니다. 필자의 경우, 네트워크 응용 프로그램을 실행할 수있는 네트워크 폴더에 응용 프로그램을 설치해야합니다. 또한 앱을 설치 한 워크 스테이션이 아닌 모든 네트워크 워크 스테이션에서 업그레이드 및 제거를 지원해야합니다. 즉, 로컬 컴퓨터의 프로그램 추가/제거 목록에 제거 프로그램을 등록 할 수 없습니다. 설치 폴더에 놓인 Uninstall.exe를 만들어야합니다. MSI는이를 지원하지 않으므로 직접 작성해야합니다.