У меня очень простой проект WiX (версия 3.7), который устанавливает somes файлы (.NET-версия 6.0.0.0). Я готов выпустить новую версию 6.0.1.0 с использованием функций MajorUpgrade в WiX.
Я сохраняю UpgradeCode одинаковым в элементе Product и меняю версию с 6.0.0.0 на 6.0.1.0
<Product Id="*" Name="MyApp" Version="6.0.1.0" Manufacturer="Me"
UpgradeCode="$(var.TheUpgradeCodeGUID)">
На машине с установленным 6.0.0.0 я запустил новый установщик.
Удаление старой версии 6.0.0.0 выполняется нормально (все установленные файлы удаляются), но когда установщик продолжает устанавливать новую версию, отсутствуют 2 файла: сторонняя DLL и сторонняя EXE (это не были изменены) не переустанавливаются.
<Component Id="AutomaticUpdaterWPF.dll" Guid="*">
<File Id="AutomaticUpdaterWPF.dll" Source="AutomaticUpdaterWPF.dll" KeyPath="yes" Checksum="yes" />
</Component>
<Component Id="wyUpdaterProgram" Guid="*">
<File Id="wyUpdaterProgram" Source="wyUpdate.exe" KeyPath="yes" Checksum="yes" />
</Component>
Все остальные файлы в <ComponentGroup> (некоторые модифицированные, некоторые немодифицированные, включая другие сторонние DLL) устанавливаются правильно во время основного обновления.
Если я нажму на "repair" после основного обновления, снова появятся 2 отсутствующих файла. Кроме того, если я устанавливаю версию 6.0.1.0 в первый раз (без обновления, но с первой установкой на чистой машине), то эти 2 файла устанавливаются напрямую и обычно. (тестируется на нескольких компьютерах Windows (XP, 7 и 8)
Кто-нибудь может предположить, что не так и как его исправить?