2017-11-11 13 views
0

Windows Forms 응용 프로그램에서 레지스트리 값을 업데이트해야합니다. 응용 프로그램을 디버깅 할 때 값이 제대로 저장되고 있습니다. 그러나 설치 프로그램 (Visual Studio 설치 프로젝트 - .vdproj) 완료 후 응용 프로그램을 시작하면 응용 프로그램이 제대로 시작되지만 레지스트리 값이 제대로 저장되지 않습니다.레지스트리 값을 "시스템"사용자로 업데이트하는 방법?

오류가 발생하지 않지만 어디에서나 항목을 찾을 수 없습니다.

.exe를 두 번 누르면 값이 올바르게 저장됩니다.

설치 프로그램이 응용 프로그램을 "시스템"사용자로 시작하기 때문입니까?

어떻게 해결할 수 있습니까?

+0

설치 관리자가 UAC 권한 상승을 요청하고이를 가져 와서 설치 프로그램에서 시작하는 프로그램의 권한을 상승시킵니다. 당신이 레지스트리에서 찌르면 일반적으로 꽤 큰 차이가납니다. 고가로 달리면 문제가 생기는 이유는 분명하지 않지만 해결해야합니다. 그리고 그 코드를 숨기지 마십시오. un-elevated 프로그램을 시작하는 간단한 방법이 없으므로 그렇게하지 마십시오. –

+0

코드에서 업데이트하려는 레지스트리 항목을 말해야하지만, 예를 들어 HKCU 항목 인 경우 시스템 계정과의 차이점을 확인해야합니다. 또한 설치 프로그램이이 작업을 수행 할 때 레지스트리 항목을 만드는 프로그램이 필요한 이유가 명확하지 않으며 작동하기 만합니다. – PhilDW

+0

@PhilDW 필자는 나의 방법이 잘못되어 설치 자체에서 생성 된 항목을 가질 수 있음을 알고 있습니다. –

답변

1

코드에서 업데이트하려는 레지스트리 항목을 말해야하지만 HKCU 항목 인 경우 시스템 계정과의 차이점을 확인해야합니다.

설치 프로그램이이 작업을 수행 할 때 레지스트리 항목을 만드는 프로그램이 필요한 이유가 분명하지 않으며 정상적으로 작동합니다. Visual Studio에서 레지스트리보기에있는 프로젝트를 설정합니다. 레지스트리에 저장하려는 많은 값은 표준 Windows Installer 속성으로 사용할 수 있으며 대괄호 구문 (예 : [TARGETDIR])을 사용하여 저장할 수 있습니다.