2013-10-21 1 views
-2

내 응용 프로그램은 응용 프로그램 설정에 대한 사용자 입력을 XML 파일로 유지합니다. 이제 응용 프로그램을 제거했지만 설정 파일 (xml 파일)이 아직 남아 있다고 가정합니다. 제거되지 않았습니다. 나는 그 다음 설치를 위해 그 설정 파일을 사용하고 싶다. "기존 설정을 사용 하시겠습니까?"와 같이 설치 중에 사용자에게 묻는 방법이 있습니까? 따라서 새로 설치 한 후에 설정을 다시 초기화 할 필요가 없습니다.새로 설치하는 동안 사용자에게 이전 설치 설정을 사용할지 여부를 묻는 메시지

답변

0

네, 할 수 있습니다. 먼저, 애플리케이션을 제거 할 때 이미 생성 된 XML 파일이 제거되지 않도록해야합니다. 기본적으로 MSI로 배포 된 응용 프로그램 파일을 제거하면 해당 파일이 제거 될 때 제거됩니다. 이를 방지하려면 특정 파일 속성으로 이동하여 PermanentTrue으로 설정하십시오.

설정 프로젝트에 설치 프로그램 클래스를 추가해야합니다. 설치 메소드 내에서 XML 파일이 존재하는지 점검하십시오. 그렇다면 사용자에게 확인 메시지를 표시하십시오. 사용자 환경 설정에 따라 오래된 XML 파일을 보관하거나 새 파일을 추가하여 새 설정을 다시 저장하십시오.

public override void Install(System.Collections.IDictionary stateSaver) 
{ 
    //Invoke the base class method 
    base.Install(stateSaver); 

    if (File.Exists("XML File path")) 
     { 
      DialogResult result = MessageBox.Show("Do you want to use existing setting?","",MessageBoxButtons.YesNo); 

     if (result.Equals(DialogResult.Yes)) 
      { 

      } 
     else 
      { 

      } 
     } 
} 
+0

작성된이 사용자 지정 동작으로 인해 자동 설치 중에 설치 관리자가 모달 대화 상자를 표시하지 않는다는 것을 알고 있습니까? –

+0

고마워요. 내 문제를 해결했습니다. –

+0

@ManakRamSeervi 기꺼이 도와 줬습니다. :) – Kurubaran

0

가장 쉬운 해결책은 설치 프로그램의 문제가되지 않도록하는 것입니다. settings.xml을 설치 프로그램에 포함되지 않은 파일로 만듭니다. 응용 프로그램을 처음 실행하면 설정을 요청하고 XML을 설정합니다. 이제 설치 프로그램이 제거되면 자동으로 제거됩니다. 다시 설치하면 앱에서 settings.xml을 계속 찾습니다.

설치 프로그램이 설치된 날짜로 레지스트리 값을 채우고 응용 프로그램에서 settings.xml에이 파일을 넣도록 할 수도 있습니다. 현재 레지스트리 값과 xml 값이 다른 타임 스탬프 인 경우 재설치가 있었으며 "계속 하시겠습니까?"라고 묻는 메시지를 선택할 수 있습니다. 당신이 원한다면 질문.

이제 설치 프로그램은 실패 할 수있는 불필요한 사용자 지정 동작이없는 간단한 파일 복사 패키지입니다.

+0

실제로 제거 중 사용자에게 묻기를 원합니다. 파일을 삭제하고 싶지 않습니다. 추가 정보를 고맙습니다. –

+0

Windows Installer 모범 사례는 사용자 데이터를 절대로 제거하지 않는 것입니다. 이유는 앱의 모든 사용자에 대한 사용자 프로필에 액세스하는 것이 불가능할 수 있기 때문입니다. –