2010-07-29 5 views
2

설치 프로젝트 및 배포 프로젝트가 있습니다. 설치된 소프트웨어는 대상 PC에 여러 파일을 생성합니다 (사용자가 사용하는 동안). 배포 프로젝트에서 제거 할 때 해당 파일을 삭제하도록 지시하는 방법이 있는지 궁금합니다.배포 프로젝트 제거 - 파일 삭제 중?

모든 파일은 사용자 Application Data 폴더에 있습니다. 제거 프로그램이 응용 프로그램 데이터 내부의 폴더와 그 안에있는 모든 파일을 (재귀 적으로) 삭제하도록 지시 할 수 있습니까?

답변

3

사용자 지정 작업을 사용하여 제거하는 동안 파일을 삭제할 수 있습니다. 이를 설정하는 가장 쉬운 방법 중 하나는 Installer 클래스를 사용하는 것입니다.

This article Arnaldo Sandoval이 작성한 날짜는 다소 오래되었지만 설치 프로그램 클래스를 사용하여 사용자 지정 동작을 구현하는 방법에 대한 개요는 아직 많이 있습니다. 제거시 파일 정리에 대한 절이 포함되어 있습니다.

그러나 Installer 클래스의 메서드를 재정의하는 대신 이벤트 리스너를 추가하는 것이 좋습니다. 당신이 "구원받은 국가"를 얻는 곳 또한 조금 다릅니다. 예를 들어, 문서 대신은이 TARGETDIR을 캡처하는 방법을 설치 오버라이드 (override) 설명 여기서

public override void Install(System.Collections.IDictionary stateSaver) 
{ 
    base.Install(stateSaver); 
    stateSaver.Add("TargetDir", Context.Parameters["DP_TargetDir"].ToString()); 
} 

당신은 유사한 방법을 만들 것입니다 :

private void onBeforeInstall(object sender, InstallEventArgs args) 
{ 
    // The saved state dictionary is a property on the event args 
    args.SavedState.Add("TargetDir", Context.Parameters["DP_TargetDir"].ToString()); 
} 

을 그리고 생성자에 등록 :

public InstallerClass() : base() 
{ 
    this.BeforeInstall += new InstallEventHandler(onBeforeInstall); 
} 

더 많은 일이 있다면 Visual Studio 속성 편집기를 통해 이벤트를 등록 할 수도 있습니다.

기사의 나머지 부분, 특히 다양한 설치 이벤트의 모든 문서화되지 않은 "기능"을 설명하는 섹션이 우수합니다.