2014-09-16 1 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 

Пока здесь все работает отлично я думаю. создать преобразование с помощью фонарика после sucessfull сборки:

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

дифф создан успешно. Тогда пиро дает мне предупреждение, что файлы не отличаются:

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. 

Файлы различны, если я установить файлы MSI я получить две разные установки. но если я устанавливаю патч, ничего не меняется. Я играл с PatchFamily, но я не могу заставить его работать.

Как я могу получить файл исправления, включая мои изменения?

+0

Разница в том, что файлы обновленного MSI имеют увеличенные версии файлов, а также те, которые вы хотите обновить в любом случае. Правило, которое установщик Windows применяет во время установки патча, зависит от изменений версии файла, поэтому нет смысла в инструментах 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

Я узнал, что вызывает эту проблему.

Сервер сборки не создает отдельную папку для каждой сборки (только для Drop, а не для самой сборки), поэтому в то время, когда я создаю патч, файлы wixpdb ссылаются на те же файлы в папке сборки, вот почему нет никаких различий. Теперь я изменил buildserver, чтобы создать административную установку в папке drop и создать преобразование с использованием окончательных файлов msi.

с использованием созданного таким образом преобразования для pyro создает msp как ожидалось, содержащий измененные файлы.

+0

можете ли вы объяснить, что вы сделали для решения этой проблемы? Я также сталкиваюсь с аналогичной проблемой. У меня нет автоматизированного процесса сборки, но ошибка такая же. –

0

Видно, что инструменты wix не распознают изменение содержимого файла. Правильно работать, как описано в разделе WIX tutorial.

Здесь особое внимание следует уделять добавлению части версии в исходный код компонентов, то есть 1.0 взять файлы компонентов из источника 1.0 и сказать, что 2.0 использует исходные файлы из корневой папки 2.0. Таким образом, файл создает патч, как ожидалось.

 Смежные вопросы

  • Нет связанных вопросов^_^