2013-09-30 3 views
0

Мне нужен совет о том, как очистить старый проект Wix, который не очень хорошо управлялся. Одна из проблем заключается в том, что в настоящее время проект имеет несколько записей для одних и тех же файлов, расположенных в одном месте. Например, несколько файлов .wxs в проекте будут определять новый компонент для foo.exe, каждый из которых использует другой GUID, и каждый отправляет этот файл в тот же каталог. Это еще не создало никаких проблем, но теперь я хочу использовать патчи (MSP) в нашем продукте и подобные вещи с их работой.Очистка дубликатов записей в установщике Wix

Мне интересно, как лучше решить этот вопрос, не нарушая апгрейды (так как все предыдущие инсталляторы вышли вот так). Если я просто удалю все повторяющиеся компоненты, во время обновления мы получим неопределенное поведение. Я думаю, что происходит то, что удаление одной или нескольких повторяющихся записей заставит установщик генерировать операции удаления для этого файла. Даже если оставшаяся запись для файла является новой версией, в порядке операций во время установки нет гарантии. Поэтому некоторые из этих файлов будут сначала обновлены, затем одна или несколько операций удаления удалят обновленный файл. Таким образом, в конце обновления будет отсутствовать несколько файлов. После этого ремонт сразу же восстановит файлы, так как установщик знает, что они должны быть там.

Я предполагаю, что один из способов решить эту проблему - это сделать «взломанный» в нашем следующем выпуске, где мы скопируем эти файлы во вторичное место, а затем запустим специальную установку post post, которая копирует файлы из вторичного местоположения в первичный и удалить временный каталог.

Есть ли более чистый способ, которым это может быть разрешено?

ответ

0

Что вам, скорее всего, нужно будет сделать, это использовать проверку, чтобы идентифицировать все дубликаты и исправить их. Затем измените обновление, чтобы стать основным обновлением с самым ранним возможным расписанием. Возможно, вам также придется поменять место установки на несколько другой каталог, чтобы разбить количество ссылок на компоненты.

После очистки вы должны быть в состоянии вернуться к незначительным обновлениям и начать думать о исправлении. Альтернативой могут быть «поддельные» патчи. Я использовал MSI, который не опубликовал себя как метод исправления очень успешно. Он нарушает множество правил, но может быть полезен для организаций, которые не заботятся о правилах исправления и просто хотят сделать бизнес счастливым.

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