2012-11-12 1 views
3

Advanced Installer 버전 (8.9) 간단한 .Net 설치 프로그램 클래스를 개발했습니다. 이 기능은 * ini 파일을 기반으로 특정 UI를 제공합니다. 내가 아는 한 Advanced Installer는 그런 것들을 지원하지 않습니다. 내가 틀렸다면 나를 바로 잡아라! 하지만 그건 내 질문의 핵심은 아니다. 사용자 선택에 따라 설치 프로그램 클래스가 레지스트리에서 특정 * .reg 파일을 병합합니다. 여기에 그 목적을 위해 사용하는 코드입니다 : 나는 Windows 설치내 설치 클래스를 가져올 때 정렬고급 설치 프로그램의 깨진 레지스트리 경로

Windows Registry Editor Version 5.00 
[HKEY_CURRENT_USER\Software\NIKOLETA] 
... 

의 sample.reg 파일이있는 경우 그래서

Process proc = new System.Diagnostics.Process(); 
proc.EnableRaisingEvents=false; 
proc.StartInfo.FileName="regedit.exe"; 
proc.StartInfo.Arguments = " \"" + regFilePath + "\""; 
proc.StartInfo.UseShellExecute = true; 
proc.Start(); 

(VS 내장) - sample.reg가 잘 병합되고 NIKOLETA 키가 HKEY_CURRENT_USER \ SOFTWARE 아래에 나타납니다. 불행히도 설치자 클래스를 아래로 가져 오면 고급 설치 - sample.reg가 다시 병합되지만 원하는 위치가 아니라 HKEY_USERS.DEFAULT \ SOFTWARE 아래에 NIKOLETA 키가 나타납니다. 고급 설치 프로그램의 HKEY_USERS 기본 경로는 HKEY_USERS.DEFAULT \ Software [Manufacturer] [ProductName]입니다. 하지만 어떻게 영향을 미칩니 까? .Net 설치 프로그램 클래스에 영향을 미칩니 까? 어떻게하면 * .reg 파일을 올바르게 병합 할 수 있습니까? 미리 감사드립니다!

답변

4

HKEY_USERS.DEFAULT 실제로 로컬 시스템 계정의 프로필이므로 사용자 지정 작업이 가장 이연되지 않은 것으로 실행되도록 설정된 경우 레지스트리 항목이 리디렉션 될 수 있습니다. 즉, SYSTEM 계정으로 실행되도록 설정되어 있음을 의미합니다 전체 관리자 권한으로

또한 조건에 따라 특정 레지스트리 항목을 만들려면 레지스트리 페이지에서 항목을 만들고 조직 페이지에서 구성 요소의 설치 조건을 설정할 수 있습니다.