특정 버전의 특정 타사 라이브러리가 설치되었는지 테스트 할 방법을 찾고 있습니다. 등록 된 dll을 확인하고 파일 시스템에 그들이 어디에 설치되었는지 알지 못합니다. 이 예에서 나는 그들이이 이전 버전 1.50이 설치되어 있는지 만드는 중이라서 :등록 된 DLL을 WiX에서 확인하는 방법
<Property Id="PRIORGUID">
<RegistrySearch Id="priorguid" Root="HKCR" Key="Prior.Encoders\CLSID" Type="raw"/>
</Property>
<Property Id="PRIORLOCATION">
<RegistrySearch Id="priorlocation" Root="HKCR" Key="CLSID\[PRIORGUID]\InprocServer32" Type="file"/>
</Property>
<Property Id="PRIORVERCHECK">
<DirectorySearch Id="priorversion" Path="[PRIORLOCATION]">
<FileSearch Name="Prior.dll" MinVersion="1.49"/>
</DirectorySearch>
</Property>
<Condition Message="This application requires Prior.">
<![CDATA[Installed OR PRIORVERCHECK]]>
</Condition>
나는 기본적으로 파일에 저를 지적하고 내가 파일 시스템의 버전을 찾아 레지스트리에서 라이브러리를 찾을 수 있습니다. 나는이 방법으로 불안하다. Type = "file"을 사용하면 파일 자체의 전체 경로를 반환하는 대신 파일이있는 디렉토리가 반환 된 것으로 보입니다. 항상이 방법으로 작동합니까? 또한 이것은 내가 기본 파일 이름을 알아야한다는 것을 의미합니다. 전체 경로를 이름과 디렉토리로 분할하는 방법이 있다면 기본 이름을 모른 채 FileSearch를 수행 할 수 있습니까?
내 방법은 신뢰할 수 있습니까? 이 작업을 수행하는 더 좋은 방법이 있습니까? 이것이 일반적인 문제인 것처럼 보입니다. WiX 3을 사용하고 있습니다.
감사합니다.