Сбой при создании патча (не обнаруживает различий) на сервере сборки

У меня есть автоматическое создание программы установки на нашем сервере сборки, и я пытаюсь создать патч между выпущенной версией и текущей версией сборки.

К сожалению, я не могу заставить это работать.

Это мой 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

Пока здесь все работает нормально, я думаю. Я создаю преобразование, используя torch после успешной сборки:

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, но не могу заставить его работать.

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

2 ответа

Решение

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

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

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

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

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

Другие вопросы по тегам