2011-01-07 8 views
0

WiX (현재 3.6)를 사용하여 응용 프로그램 설치 프로그램을 만듭니다. 다음 단계는 무언가를 변경해야 할 때 패치를 만드는 것입니다. 많은 파일에 대해 자동으로 구성 요소를 만들 때 열을 사용하면 해당 구성 요소는 ComponentGroup을 사용하여 참조됩니다. 안타깝게도 PatchFamily는 ComponentRefs 만 허용하고 ComponentGroupRefs는 허용하지 않습니다. 이러한 구성 요소가 자동 생성 될 때마다 패치 생성을 가능하게하는 방법을 찾습니다.많은 구성 요소가있는 WiX를 사용하여 패치 만들기

내가 시도하는 방법은 여기에 설명되어 있습니다 :

Patchwork은 현재 내가 관리 설치 수를 사용하고 사이 DIFF을 할 수있는 가능성을 조사하고 있습니다.

해결책을 찾은 사람이 있습니까?

답변

0

정확히 무엇을하려는 것입니까? 새 파일로 응용 프로그램을 업그레이드합니까? ComponentGroupRefs를 사용하는 변경 사항이 실제로있는 경우 실제 업그레이드를 수행하는 것이 좋습니다. 패치는 (최소한 내 이해에서) 프로그램의 작은 변경 사항에 대해서는 더 많은 것을 의미하고, 업그레이드는 수많은 파일에 영향을 미치는 큰 변경 사항을 의미합니다.

+0

순전히 WiX를 사용하여 패치를 만드는 작업에는 patch.wxs의 모든 구성 요소를 참조하는 작업이 포함됩니다. 그런 다음 업데이트는 이전 파일과 새 파일을 비교하고 변경된 파일 만 포함합니다. 더위에서 생성 된 구성 요소가 있기 때문에 Main Wxs에서 ComponentGroups에 제공했습니다. 구성 요소를 "알지 못하거나 직접 입력 할 수 없습니다. 너무 많아. – Sascha

+0

내가이 문제를 어떻게 생각하든간에. 패치 및 업그레이드는 구성 요소 GUID를 비교하여 설치된 항목과 그렇지 않은 항목을 찾아서 작동합니다. 이전 GUID에 대한 액세스 권한이없고 모든 사용자에게 새로운 GUID (최소한 내 경험으로는)를 제공하면 클라이언트 컴퓨터에 두 번 설치된 프로그램 (또는 그 중 일부)이 종료됩니다. 실제로 수많은 파일이있는 설치에서는 작동하기가 어렵습니다. 현재 프로젝트에는 20 개가 넘는 MSI의 약 10,000 개의 다른 파일이 있습니다. 그러나 초기 설정이 유지 보수 및 유지 보수의 경우에 불과합니다. – Adkins

+0

열은 구성 요소에 대해 Guid = "*"를 생성하므로 정확히 설명합니다. 나는 한 번 할당 된 가이드를 기억하는 나의 "히터"를 쓰고있다. – Sascha