문제

PATH 환경을 업데이트하고 추가 환경 변수를 생성하는 사용자 지정 설치 프로그램 작업이 있습니다.기존 경로 변수에 디렉터리를 추가하면 제대로 작동하지만 어떤 이유로 새 환경 변수를 만들려는 시도가 실패했습니다.내가 사용하는 코드는 다음과 같습니다

        using (RegistryKey reg = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Environment", true))
        {
            reg.SetValue("MYVAR", "SomeVal", RegistryValueKind.ExpandString);
        }

편집하다:OS는 32비트 XP이며, 제가 아는 한 조용히 실패하고 있습니다.

도움이 되었습니까?

해결책

굳이 레지스트리를 통해서 해야하는 이유가 있나요?

그렇지 않은 경우 .NET 2.0부터 Environment.SetEnvironmentVariable()을 사용할 수 있습니다.이를 통해 기계, 프로세스 또는 사용자 기준으로 설정할 수 있습니다.

다른 팁

이건 무슨 OS인가요?64비트 시스템에 있습니까?실패의 성격은 무엇입니까?자동입니까, 아니면 예외가 발생합니까?

당신은 실행을 시도할 수 있습니다 프로세스모니터 값을 설정하려는 시도가 있는지 확인합니다.

이를 위해 CustomAction을 사용하는 이유는 무엇입니까?Windows Installer는 기본적으로 환경 변수 업데이트를 지원합니다.

내 질문에 있는 코드가 호출되지 않는 또 다른 문제가 있는 것으로 나타났습니다.그러나 내가 따르고 있는 예제 코드는 환경 어셈블리가 사용 가능해지기 전에 작성되었기 때문에 Win32 어셈블리를 사용하고 있었습니다.환경 API를 지적해준 Peter에게 감사드립니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top