2011-09-07 1 views
9

나는 최신 votive (Wix v3.5)를 사용하고 있으며 간단한 Wix VS 2010 설치 프로젝트를 만들었습니다. 내 웹 사이트 참조를 추가하고 Harvest 옵션을 true으로 설정했습니다. 파일 수확 LGHT0231 오류로 연결

지금 IISROOT 아래의 폴더에 내 INSTALLDIR 점 때문에, 나는이 light.exe 오류 얻을 :이 오류 뒤에 이유를 이해하지만

[filepath]: error LGHT0231: The component 'cmp93982C4086FF8C75F07339DD7CEA8152' has a key file with path 'TARGETDIR\webdir...[filename].xml'. Since this path is not rooted in one of the standard directories (like ProgramFilesFolder), this component does not fit the criteria for having an automatically generated guid. (This error may also occur if a path contains a likely standard directory such as nesting a directory with name "Common Files" under ProgramFilesFolder.)

을, 나는 반드시 어쩌면 (의 합리적인에 동의하지 않는 나는 Wix MSI 세대의 선천적 인 작용을 이해하지 못한다.)

어떻게이 오류를 해결할 수 있습니까? 나는 팀 빌드와 함께이를 설정하기 위해 노력하고있어

:


은 일부 내용을 제공합니다. 기존 형식을 사용하고이 문제를 해결하기 위해 폴더에 대해 열/수확 작업을 실행할 수 있지만 기존 경로를 원하지는 않습니다.

새로운 워크 플로 기반 빌드 정의로는 충분히 플레이하지 못했지만이 사용자 지정 작업을 어떻게 통합 할 수 있는지 잘 모릅니다.

수백 개의 파일을 수동으로 추적하고 싶지 않기 때문에 설치 프로젝트가 빌드 될 때마다 수확을 실행해야합니다.

+0

동일한 문제가 있습니다. 기본 설치 위치로 C : \ Inetpub \ wwwroot \ MyProject \를 설정하려고하는데 WiX에서이 파일을 듣지 않습니다. –

+0

해결 방법을 찾았습니까? 감사합니다 –

+0

@SanjaMelnichuk : 불행히도 아닙니다. 다른 프로젝트로 이전하면서 더 많은 시간을 투자하지는 못했지만 내가하려는 일은 XAML 지식과 TFS 워크 플로에 익숙해야합니다. – Mrchief

답변

9

문제는 구성 요소가 TARGETDIR에 뿌리를두고 있기 때문에 WiX가 자동으로 GUID를 생성하는 데 사용할 수 없기 때문입니다. 이 구성 요소 위에있는 디렉토리에 Directory/@ComponentGuidGenerationSeed을 추가하여 문제가 발생하지 않도록 할 수 있습니다. 이 속성을 추가하면 업그레이드를 통해 두 개의 다른 디렉토리에 구성 요소가 설치되지 않도록해야합니다.

Windows Installer에서 구성 요소에는 패치, 보조 업그레이드 및 주요 업그레이드간에 변경되지 않는 GUID가 있어야합니다. 편의상 WiX는 구성 요소의 디렉토리 계층을 시드로 사용하여 version 5 UUID을 생성 할 수 있습니다. 그러나 TARGETDIR은 이에 해당되지 않습니다.

그 이유는 설치간에 (가장 많은 여유 공간이있는 드라이브로 설정되어) TARGETDIR 변경이 원인이라고 생각합니다. 구성 요소 규칙 중 하나는 "each component must be stored in a single folder"입니다. 주요 업그레이드 사이에 TARGETDIR이 변경되면 동일한 구성 요소를 두 번째 폴더에 설치하려고 할 수 있습니다.

+0

또 다른 Wix 프로젝트를 제작할 때까지는 아니 었습니다.이 프로젝트를 다시 시작한 후 솔루션을 기억했습니다. 미안해, 너무 오래 받아 들여! :) – Mrchief