2009-10-23 3 views
0

응용 프로그램 설치 프로젝트에서 사용자가 "모든 사용자"또는 "모든 사용자"를 선택했는지에 따라 HKLM/소프트웨어 또는 HKCU/소프트웨어에서 레지스트리 키를 설정하려고합니다. Me "를 선택하십시오. 그 효과를 VS2008의 설치 프로젝트에서 조건 필드 사용

, 나는 "각각 :

  • ALLUSERS = 1
  • ALLUSERS를 ="ALLUSERS를 속성을 사용하고 1 "중 하나에 대해 그것을 확인하기 위해 노력했습니다"

AlwaysCreate 속성을 False로 설정했습니다. 그리고 HKLM/소프트웨어/my_key과 HKCU/Software/을 모두 설치하면 my_key이 생성됩니다.

무엇이 누락 되었습니까?

업데이트! 내가 대괄호 ALLUSERS를 둘러싸는 전이 속성을 활성화 또는 ALLUSERS를 사용하여 같은 다른 대안을하려고했는데 = 1 대신 = "". 아무 소용이 없다. 나는 지금 이것을 포기하고 두 경우에 대해서만 HKLM 하에서 창작하고있다. 그러나 누군가가 대답을 가지고 있다면 나는 정말로 감사 할 것입니다.

+0

이 질문을 향상시킬 수있는 사람이 있으면 제발 내 보내십시오. 나는 지금까지 어떤 대답도 얻지 못했다는 것이 이상하다는 것을 알게되었습니다. 어느 누구도 알지 못하는 널리 사용되는 기능 중 드문 경우로 넘어 갔을 때가 아니면이 권한을 묻지 않을 가능성이 더 큽니다. –

+0

-anyone + anyway –

답변

2

Windows Installer에 대한 제 이해는 개발자가 걱정할 필요가 없도록이 동작을 추상화 한 것입니다. 즉, ALLUSERS 속성이 설정되어 있지 않으면 설치 패키지가 HKLM이 아닌 HKCU에 레지스트리 키를 "자동으로"넣습니다. MSDN의 http://msdn.microsoft.com/en-us/library/aa367559%28VS.85%29.aspx에있는 설명서를 참조하십시오. 따라서 설치 프로젝트를 통해이 기능을 다시 구현하려는 것처럼 들립니다. ALLUSERS 속성을 기반으로 조건을 삭제하는 것이 좋습니다.

추가 정보로, AlwaysCreate 속성은 레지스트리 키가 생성되는 상황, 특히 키 내용과 관련하여 제어합니다. 이 값을 false로 설정하면 "하위 키 또는 값이없는 경우이 키를 만들지 마십시오"라고 표시됩니다. true로 설정하면 "하위 키나 값이 있는지 여부에 관계없이이 키를 만듭니다"라는 의미입니다. MSDN의 http://msdn.microsoft.com/en-us/library/e1t11k72%28VS.100%29.aspx에서 다시 사용할 수있는 설명서

+1

처음에는 문제를 해결하지는 못했지만, 나에게 잘못된 생각이 들었을 것입니다. 고마워. 문제는 이것과 관련이 있습니다. 나는 뭔가 잘못하고 있었다. 나는 HKLM 및 HKCU 하이브를 사용하고 조건부로 키를 설정하려고했습니다. 그러나 나는 설치 프로젝트 레지스트리 편집기의 마지막 항목을 완전히 놓쳤습니다. 눈에 띄는 "사용자/기계 하이브". 그것이 바로 열쇠를 넣어야하는 곳이며 HKLM이나 HKCU 밑에 직접 있지는 않습니다. 바보 나. –