2013-11-20 5 views
0

다른 제품 디렉토리에 DLL을 설치하려고합니다.WiX : 일부 제품 제품 구성 요소를 다른 제품 디렉토리에 설치하는 방법은 무엇입니까?

<Property Id="CUSTOMPATH"> 
    <RegistrySearch Id="CustomPath" 
        Root="HKLM" 
        Key="SOFTWARE\Wow6432Node\XXXXX\XXXXX\XXXX" 
        Name="MY Install Path" 
        Type="raw" /> 
</Property> 

누군가가 방법이 디렉토리에 내 제품의 구성 요소를 설치하려면이 속성을 사용하는 방법을 말해 줄래 : 나는 다음과 같은 RegistrySearch을 수행하여 디렉토리를 찾을?

이 방법을 시도했지만 []이 (가) DestinationDirectory 속성에 유효하지 않다는 오류가 표시됩니다.

<DirectoryRef Id="MyInstallFolder"> 
    <Component Id="MySharedDll.dll" Guid="some-guid"> 
    <File Id='MyFile.dll' Name='MyFile.dll' DiskId='1' Source='MySourceDir\MyFile.dll'> 
     <CopyFile Id='x_MyFile.dll' DestinationDirectory='[REGISTRYSEARCHPATHFOUND]'/> 
    </File> 
    </Component> 
</Directory> 

답변

1

몇 가지.

첫 번째 : REGISTRYSEARCHPATHFOUND! = CUSTOMPATH입니다.

두 번째 : CopyFile @ DestinationDirectory (문서 당)는 빌드 할 때 디렉터리 테이블에있는 키에 대해서만 작동합니다. 속성은 AppSearch 이후에 존재하지 않습니다. 대신 대신 DestinationProperty 특성을 사용해야합니다. 또한 속성은 이미 형식화 된 문자열이 아닌 속성 이름을 기대하기 때문에 []를 버립니다.

+0

이 작동하며 파일을 적절한 디렉토리에 복사 할 수 있습니다. 하지만 지금은 또 다른 문제가 있습니다. 나는 내 제품의 두 버전을 공유 DLL을 다른 회사의 프로그램 파일 디렉토리에있는 공통 디렉토리에 복사했다. 그리고 하나의 버전을 제거하면 그 dll 파일이 제거됩니다. 참조 계산이 여기서 작동하지 않는 이유는 무엇입니까? 구성 요소에 동일한 GUID가 있으면 참조 계산이 작동해야한다고 생각했습니다. – rharrison33

+0

구성 요소에는 동일한 구성 요소 GUID ID, 동일한 키 파일 및 sharedcomponent 특성 집합이 있어야합니다. –

+0

구성 요소의 GUID는 같지만 키 파일과 공유 구성 요소 속성이 동일한 지 확인하는 방법은 무엇입니까? – rharrison33