wix 'KeyPath'속성은 무엇입니까?


125

Wix ' KeyPath '속성 은 무엇입니까 ? 특히 다음 항목에 어떻게 적용됩니까?

<Component Id="ProgramMenuDir" Guid="*">
  <RemoveFolder Id="ProgramMenuDir" On="uninstall" />
  <RegistryValue Root="HKCU" Key="Software\CompName\AppName" 
                 Type="string" Value="" KeyPath="yes" />
</Component>

112
OMG the Wix 문서는 완전히 쓸모가 없습니다. wix 문서에 따르면 KeyPath 속성에 대해 "예"로 설정하면 파일이 구성 요소의 키 경로로 처리됩니다. Soooo 도움이 !!
Cheeso

5
@RobMensching-커뮤니티에 기여하려는 귀하의 정신과 의지에 감사드립니다. 불평하지 않는 방법을 말하는 것은 나 (그리고 다른 사람들)에게 불평하는 방법을 말하는 것만 큼 좋지 않습니다. 버그를 제기 할 장소를 알았다면 2 년 전에했을 것입니다. 또한 upvotes에서 볼 수 있듯이 분명히 다른 사람들도 비슷하게 느낍니다. "Wix 개선에 도움을주세요! 여기 를 클릭하여 적절한 버그를 제기하십시오"라는 메시지를받을 때가되었을 것 입니다.
Cheeso 2011 년

21
할 것이다, @Cheeso! 여기에 버그를 신고
Rob Mensching

8
@Cheeso 이해해야 할 핵심 개념은 WiX 설치 프로젝트가 Windows Installer 패키지를 빌드한다는 것입니다. WiX 문서는 Windows Installer 문서를 복제하지 않습니다 (대부분 그렇게해서는 안됩니다). WiX가 지원하는 Windows Installer 테이블을 이해하지 않고도 WiX 구성을 자주 사용할 수 있지만 질문이 있으면 MSDN의 문서를 확인해야합니다. 구성 요소의 경우 여기 에서 시작 하십시오 .
Tom Blodget 2013

30
@TomBlodget : WiX는 Windows Installer 문서를 복제해야한다고 주장합니다. 대부분의 사용자에게 WiX / Windows Installer 분할은 혼란을 야기 할 뿐이며 최종 사용자에게 숨길 수있는 부분이 많을수록 전체 도구를 더 쉽게 사용할 수 있습니다.
Scott Stafford

답변:


122

Rob Mensching은 다음과 같이 설명합니다 .

구성 요소에 대한 KeyPath는 Windows Installer가 컴퓨터에 구성 요소가 "존재"하는지 확인하는 데 사용하는 단일 리소스입니다.

즉, Windows Installer가 구성 요소를 설치할지 여부를 결정할 때 먼저 키 경로 리소스가 이미 있는지 확인합니다. 그렇다면 구성 요소의 리소스가 설치되지 않습니다.

keypath 리소스의 존재 여부는 MSI를 "복구"할 때 구성 요소가 손상되었거나 누락되었는지 여부도 결정합니다.

키 경로 리소스가 버전이 지정된 파일 인 경우 Windows Installer는 버전이 같거나 더 높은 파일을 찾은 경우에만 존재하는 것으로 간주합니다.

특정 예에서 제거시 폴더를 제거하는 구성 요소가 있습니다. 이 구성 요소는 지정된 레지스트리 키가 아직없는 경우 에만 설치 됩니다. 키 경로로 사용할 레지스트리 키를 추가하는 것은 바로 가기 와 같이 키 경로 자체로 사용할 수없는 리소스를 설치하는 구성 요소에 대한 키 경로가 필요할 때 일반적인 트릭 입니다.


4
그렇다면 컴포넌트의 유일한 파일에 keypath = "no"속성을 명시 적으로 부여하는 이유는 무엇입니까?
Christopher B. Adkins

4
@Adkins : Wix의 기본 동작을 억제하여 해당 파일을 키 경로로 사용합니다. 결과적으로 해당 구성 요소의 설치 프로그램 데이터베이스에 키 경로가 기록되지 않습니다. 설치하는 동안 Windows 설치 프로그램은 구성 요소 의 대상 폴더 를 키 경로로 사용합니다. 이 동작을 얻는 또 다른 방법은 구성 요소 자체에 "keypath = yes"를 설정하는 것입니다. 어쨌든 그것은 나에게 좋은 생각이 아닌 것 같습니다.
Wim Coenen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.