2009-04-18 5 views
2

특정 어셈블리가 GAC에 있는지 여부를 WiX 3 (가급적이면 조건을 통해)에서 감지하고 싶습니다. 나는 그 어셈블리의 이름, 버전 및 공개 키 토큰을 알고있다. 이 작업을 수행 할 수있는 방법이 있습니까? 아니면 CustomAction을 작성해야합니까? CustomAction을 설정하려면 어떻게해야합니까?어셈블리가 WiX 3를 통해 GAC에 있는지 감지합니다.

답변

3

FileSearch을 사용하여 % windir % \ assembly \ GAC (다른 모든 값을 알고있는 경우)에서 파일을 검색 할 수 있지만 작동하지는 않지만 작동합니다.
전체 파일 경로는 설치 시작 전 상태에서 사용할 수있는 속성 내에 저장됩니다.

+0

나를 위해 일합니다. 약간의 해킹이 GAC 디렉토리로 직접가는 것처럼 보이지만 그렇지 않으면 접근 방법을 상당히 깨끗하게 처리합니다. 디렉토리는 이름, 버전 및 공개 키 토큰으로 이름이 지정됩니다. 이는 정확히 내가 갖고있는 것입니다. – Promit

+0

어셈블리 이름이 [Windir] \ assembly \ GAC_MSIL \ [DllNameWithout.dll] \ _ \ [DllNameWid.dll] 인 것처럼 [DllNameWithout.dll]까지만 검색되었습니다. – Sonhja

2

주의해야합니다. 어셈블리는 % windir % \ assembly \ GAC 폴더 이상에 설치할 수 있습니다. 내 어셈블리는 % windir % \ assembly \ GAC_MSIL에 가장 자주 설치됩니다. % windir % \ assembly \를 검색하면 괜찮을 것입니다.

관련 문제