2014-09-16 3 views
1

빌드 서버에서 자동화 된 설치 프로그램을 만들고 릴리스 된 버전과 현재 빌드 버전 사이에 패치를 만들어 봅니다.빌드 서버에서 패치 생성이 실패 (차이점을 발견하지 못함)

슬프게도 나는 작동하지 않습니다.

이 내 Patch.wxs입니다 :

<Patch AllowRemoval="no" Manufacturer="Company" DisplayName="Product Patch" Description="Patch" Classification="Update"> 
    <Media Id="5000" Cabinet="RTM.cab"> 
     <PatchBaseline Id="RTM"/> 
    </Media> 
    <PatchFamily Id="SampleFamily" Version="1.0.0.0" Supersede="yes"> 
     <FeatureRef Id="ProductFeature"/> 
    </PatchFamily> 
    </Patch> 

내가 & 링크에게 패치 파일을 컴파일하는 postBuild를 사용 : 모든 것이 잘 작동

"C:\Program Files (x86)\WiX Toolset v3.8\bin\candle.exe" $(ProjectDir)Patch.wxs -dDebug -dOutDir=$(TargetDir) -o Patch.wixobj 
"C:\Program Files (x86)\WiX Toolset v3.8\bin\light.exe" $(TargetDir)Patch.wixobj -o $(TargetDir)Patch.wixmsp 

여기까지 나는 것 같아요. 내가 A A sucessfull 빌드 후 토치를 사용하여 변환을 만들 :

torch -p -xi release.wixpdb latestBuild.wixpdb -out diff.wixmst 

은 diff이 성공적으로 생성됩니다. 나는 두 개의 서로 다른 설치를 얻을 MSI 파일을 설치하는 경우

pyro Patch.wixmsp -t RTM diff.wixmst -out patch.msp" 
warning PYRO1079 : The cabinet 'RTM.cab' does not contain any files. If this patch contains no files, this warning can likely be safely ignored. Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet. 

파일이 다른 : 은 다음 파이는 나에게 어떤 파일이 다르지 않습니다 있다는 경고를 제공합니다. 하지만 패치를 설치하면 아무것도 변경되지 않습니다. 나는 PatchFamily와 함께 놀았지만 그것을 작동시킬 수는 없다.

변경 사항을 포함한 패치 파일을 어떻게 얻을 수 있습니까?

+0

차이점은 업데이트 된 MSI의 파일에는 파일 버전이 증가 했으므로 업데이트하려는 파일 버전이 많다는 것입니다. 패치 설치 중에 Windows Installer가 적용하는 규칙은 파일 버전 변경에 따라 다르므로 다른 차이점을 찾는 WiX 도구에는 아무런 의미가 없습니다. – PhilDW

+0

샘플 http://wixtoolset.org/documentation/manual/v3/patching/wix_patching.html은 파일 버전을 변경하지 않고 어떻게 작동합니까? – Console

+0

테스트 파일의 버전이 변경되지 않았습니다. 그것들은 해시되었으므로 파일이 변경된 경우 해시가 동일하고 업데이트되지 않습니다. 이 부분을보십시오 : http://msdn.microsoft.com/en-us/library/aa368267(v=vs.85).aspx – PhilDW

답변

0

이 문제의 원인을 찾아 냈습니다.

빌드 서버는 각 빌드에 대해 별도의 폴더를 작성하지 않습니다 (빌드 자체가 아니라 드롭 전용). 그래서 패치를 작성할 때 두 wixpdb 파일 모두 빌드 폴더의 동일한 파일을 참조합니다. 차이점은 없습니다. 이제 build 서버를 변경하여 drop 폴더 내에 관리 설치를 만들고 최종 msi 파일을 사용하여 변환을 만듭니다.

pyro에 대해 이렇게 만들어진 변환을 사용하면 예상대로 변경된 파일을 포함하는 msp가 생성됩니다.

+0

이 문제를 해결하기 위해 무엇을했는지 설명 할 수 있습니까? 나는 또한 비슷한 문제에 직면하고있다. 자동 빌드 프로세스가 없지만 오류는 동일합니다. –

0

wix 도구가 파일 내용 변경을 인식하지 못하는 것 같습니다. 제대로 작동하려면 WIX tutorial에 설명 된대로 정확하게 수행하십시오.

구성 요소 원본에 버전 부분을 추가하는 데 특히주의하십시오. 예를 들어 1.0은 1.0 소스에서 구성 요소 파일을 가져오고 2.0은 2.0 루트 폴더에서 원본 파일을 가져옵니다. 이 방법은 예상대로 파일을 만듭니다.