WiX 기반 설치의 일환으로 사용자에게 등록 정보 값 (JAVA_LOC)을 입력하도록 요청해야합니다.이 값은 레지스트리 값으로 저장합니다 (이는 내가 작성하고자하는 디렉토리가 아닙니다. 그러나 게시 이벤트 = "SetTargetPath"를 사용하는 경우 링커에서는 JAVA_LOC을 구성 요소 계층 구조의 디렉토리로 선언해야한다고 말합니다. 내가 그렇게한다면, 나는 그 길을 기록 할 수있다. 그러나 이후에 '변경'설치를 실행하면 새 경로 값이 무시되고 JAVA_LOC가 강제로 작성된 JAVA_LOC 디렉토리 위치로 재설정됩니다.WiX - 설치 디렉토리가 아닌 경로를 확인 하시겠습니까?
디렉토리가 아닌 사용자가 입력 한 경로의 유효성을 검사하는 방법은 무엇입니까? 기억하기를, 나는 단지 그것을 레지스트리에 저장하려고하고있다. 정말로 그것에 대한 디렉토리를 만들지는 않는다.
데이브
고마워요, 크리스토퍼. 그거 알아두면 좋을거야. 예. 디렉토리가 생성되지 않았습니다. 문제는 마지막 부분입니다. 첫 번째 설치에서 JAVA_LOC 값을 레지스트리로 올바르게 가져옵니다. 다음에 '변경'설치를 수행하고 UI 값을 변경하면 실행될 때 로그에 새로운 값이 무시되는 것을 볼 수 있습니다. JAVA_LOC는 디렉토리 트리 loc으로 설정되고 실행 중에 레지스트리에 저장됩니다. 디렉토리 선언에는 '보안'이 없습니다. 어떻게 JAVA_LOC 속성을 무시하지 않도록 할 수 있습니까? –
아. 디렉토리 속성은 안전하다고 표시 할 필요가 없습니다. 자동입니다. 문제는 디렉토리를 생성하지 않고 디렉토리에 아무 것도 설치하지 않았기 때문입니다. MSI는 디렉토리의 위치를 기억하지 않습니다. 무언가가 설치되면 끈끈한 (불변)이됩니다. ControlEvent를 중계하는 대신 (UI는 복구 중에 실행되지 않습니다.) CostInitialize 전에 Type51 CA를 사용하거나 CostFinalize를 설치 한 후에 Type35 CA를 사용해야 JAVA_LOC 디렉토리 속성이 기본 값이 아닌 원하는 값을 갖게됩니다. 값. y –
또한 레지스트리의 값을 CA 입력으로 다시 읽어야합니다. 자세한 내용은 다음을 참조하십시오. http://robmensching.com/blog/posts/2010/5/2/The-WiX-toolsets-Remember-Property-pattern –