0

Windows 서비스 프로젝트에서 Project Installer를 사용하여 다음을 시도했습니다.설치시 .NET 응용 프로그램/사용자 설정을 어떻게 변경합니까?

[RunInstaller(true)] 
public partial class ProjectInstaller : Installer 
{ 
    public ProjectInstaller() 
    { 
     InitializeComponent(); 
    } 

    protected override void OnBeforeInstall(System.Collections.IDictionary savedState) 
    { 
     base.OnBeforeInstall(savedState); 
     Settings.Default.ASetting = "aValue"; 
     Settings.Default.Save(); 
    } 

    protected override void OnAfterInstall(System.Collections.IDictionary savedState) 
    { 
     base.OnAfterInstall(savedState); 
     Settings.Default.ASetting = "aValue"; 
     Settings.Default.Save(); 
    } 
} 

그러나 설치 후에 .config 파일을 확인하면 이전 값이 그대로 유지됩니다. 일반적인 [userfolder] \ AppData \ Local

에는 .config 파일이 없었습니다. 설치 프로젝트에서 사용자 입력으로부터 값을받을 것이므로 설치시이 변수를 정의하는 것이 중요합니다. 이 상수 값은 테스트 목적으로 만 사용됩니다.

답변

1

프레임 워크에서는 응용 프로그램 설정이 읽기 전용이며 서비스가 설치되어 실행 중일 때 (사용자 이름으로) 사용자 컨텍스트가 없으므로 설치 중에 설정을 변경할 수 없습니다.

내가 발견 한 유일한 해결책은 구성 파일의 일반 XML 조작을 사용하여 설정을 변경하는 것입니다. Install 메서드를 재정 의하여 파일 자체를 변경합니다.

+0

나는 당신이 말하는 것보다 Windows 레지스트리에 글을 쓰고 싶습니다. 복사/붙여 넣기 할 작업 코드를 찾지 못하면. –

관련 문제