2014-07-10 8 views
2

heat.exe를 사용하여 설치하려는 모든 파일을 나열하는 .wxs 파일을 생성했습니다. 나는 그들을 ComponentGroup에두기 위해 열을 들었다. 그래서 다른 (손으로 생성 한) .wxs 파일에서 그것들을 참조 할 수 있었다.WiX : 자동 생성 된 ComponentGroup에서 GUID를 자동 생성하는 방법

그러나, 자동 생성 된 파일의 사양은 다음과 같이 :

<Component Id="cmp10D34854E51FC71E0A65900015642460" Directory="dir82EF0D8D89A5B984406E0CCDF2A5E5BC" Guid="*"> 
    <File Id="fil65369E1F7C8702A7B78CF393C06A9C7B" KeyPath="yes" Source="SourceDir\CHANGELOG.md" /> 
</Component> 

소스가 "SOURCEDIR"로 시작하기 때문에, 나는 다음과 같은 오류 light.exe에서 얻을 :

: error LGHT0231 : The component 'cmp10D34854E51FC71E0A65900015642460' has a key file with path 'TARGETDIR\vwf-windows-build\CHANGELOG.md'. 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.) 

어떤 생각이 무엇을 나는이 일을하기 위해해야합니까?

답변

4

재미있는 질문입니다. 오늘도 비슷한 질문을했을 때 질문을 찾지 못했습니다. (Using heat.exe for files placed in WindowsVolume - GUID Issues).

구성 요소의 디렉토리 속성에서 지정한 폴더는 어디에 있습니까? 자동 생성 된 GUID (heat -ag 스위치)는 구성 요소에는 무작위가 아니지만 대상 폴더에 종속됩니다. 오류 메시지는 기본적으로 표준 디렉토리 (예 : [ProgramFilesFolder])에 뿌리를 둔 디렉토리에 Component를 두거나 정적 GUID를 제공하도록 알려줍니다. 당신은 수확시 스위치 -gg 대신 - AG를 설정하여 후자 얻을 수 있습니다

heat dir HeatDir -out harvested.wxs -var var.SourceDir -cg MyComponentGroup -dr MyInstallDir -g1 -ag -ke -srd -scom -sreg 

을하지만 생성 된 GUID를 지금 무작위 있음을 유의하십시오. 설치 프로그램을 자동화 된 방식으로 업데이트하기 위해 열을 사용하면 업그레이드 설치 중에 문제가 발생할 수 있습니다.

희망이 있습니다.

+0

고마워요! "-dr MyInstallDir"부분이 누락되었습니다. 그게 바로 해결 됐어. – Eric