2012-02-20 5 views
1

WIX를 사용하여 msi 설정을 만들 때 변경/복구시 CopyFile 실행과 관련된 문제가 있습니다.WIX CopyFile 요소를 사용하여 변경/복구시 파일을 대상에 설치하지 않고 시스템 폴더로 복사하는 방법?

원본 폴더의 파일을 이미 사용자 시스템 내부의 폴더로 복사/이동하는 구성 요소가있는 기능이 있습니다. 그것은 내 응용 프로그램의 폴더가 아닙니다. 이 파일을 옮기고 대상에 설치하지 않을 것입니다. 이 기능은 전체 설정을 사용하여 설치하면 잘 작동합니다. 하지만 초기 설치시이 기능을 설치하지 않고 "변경"중에 설치하려고하면 CopyFile 구성 요소를 제외하고 기능 내의 다른 모든 사용자 지정 작업/구성 요소가 실행/설치됩니다. 이것은 내 설치에 중요하며 복사되지 않으면 설치가 실패합니다.

누구나 비슷한 문제에 대한 해결책을 찾았거나 비슷한 문제가 발생했는지 궁금합니다.

+1

파일을 다른 위치에서 복사하지 않고 해당 위치에 설치할 수 있습니까? –

+0

예. 시험해 보았습니다. 작동하고 있습니다. 나 또는 다른 사람이 해결책을 찾을 때까지 나는 그 접근 방식을 사용할 것이지만 이상적으로는 설치 크기를 줄이기 위해 복제를 방지하고 싶습니다. – sttaq

+0

두 위치 모두에서 파일이 필요합니다. 그렇습니까? WiX는 이러한 상황을 처리해야하며 CAB에 파일 버전을 하나만 유지해야합니다. –

답변

0

CopyFile 작업이 포함 된 구성 요소가 잘못 구성되었습니다. 키 경로로 실제 파일 또는 레지스트리 항목이 있어야합니다.

Windows Installer는 구성 요소를 사용하여 리소스를 관리하지만 구성 요소가 설치되어 있는지 여부를 결정하는 주요 요소는 구성 요소 키 경로입니다.

따라서 키 경로로 리소스가없는 구성 요소는 절대 설치되지 않으며 포함 된 CopyFile 작업은 실행되지 않습니다.

+0

이 구성 요소에 파일을 저장 했으므로이 방법으로 작동합니다. 그러나 문제는 그것이 처음에 피하려고했던이 파일을 복제한다는 것입니다. 또한 KeyPath 속성을 true로 설정했습니다. CopyFile 레지스트리 항목을 배치하고 작동하는지보십시오. 곧보고 할 것이다. – sttaq

+0

행운을 따라 다음을 시도했습니다. \t \t \t sttaq