2016-01-22 5 views
0

Я пытаюсь создать патч (MSP-файл) с помощью wix, где я копирую некоторые файлы на путь установки приложения (файлы программы), а также пытается добавить ключ реестра.
При установке (с использованием msi) он отлично работает, как и ожидалось, обновляются двоичные файлы. Но когда я пытаюсь применить патч, он не работает, значит бинарные файлы не обновляются.приложения и двоичные файлы не обновляются при применении патча, где пытаются добавить раздел реестра

Однако, я заметил, что, когда я пытаюсь применить патч еще раз, двоичные файлы, похоже, обновляются.
Похоже, что я добавляю компонент, предоставляя Guuid.

Вопрос: Почему он работает для свежей установки, но не при использовании патча? Можно ли добавить компонент с новым guuid, используя patch (msp)? нужен

+0

Добро пожаловать в StackOverflow! Я переформатировал ваш вопрос (и исправил небольшую грамматику), чтобы сделать его более читаемым. Я не эксперт по wix, но я думаю, им потребуется немного больше информации о том, что именно вы сделали, чтобы ответить на ваш вопрос. –

+0

Что именно вы пытаетесь достичь? В основном, если вы делаете полное обновление до своего приложения, например добавление функций, вы не должны использовать патч. Если вам нужно заменить файл или два из предыдущей установки, вы используете патч для изменения размера укуса в вашем предыдущем msi. – ProjectNapalm

ответ

1

Некоторые более точная информация:

«При установке (с помощью MSI) он работает отлично, как и ожидалось, бинарные файлы будут обновлены».

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

Возможно добавить компонент с патчем, но правила могут быть сложными. Цель патча состоит в основном для исправления существующих компонентов, а не для их добавления. Кроме того, если вы удалите компонент как часть патча, исправление не будет работать должным образом. Основная проблема, о которой вы должны знать, - это правила компонентов, а не нарушение их в патче или обновлении.

http://robmensching.com/blog/posts/2003/10/18/component-rules-101/

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

Чтобы узнать, были ли вы нарушены правила компонентов во время обновления (например, патч), введите подробный журнал и найдите сообщения SELMGR, связанные с удалением компонентов, которые не поддерживаются. Также установите MSIENFORCEUPGRADECOMPONENTRULES = 1, чтобы обновление не сработало, если правила были сломаны.

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370093(v=vs.85).aspx

http://robmensching.com/blog/posts/2007/1/4/doing-a-small-update-or-minor-upgrade-in-msi-use/

+0

Спасибо за ответ. «При установке (используя msi) он отлично работает, как и ожидалось, обновляется двоичный файл». Здесь я хочу сказать, что когда я выполняю новую установку, я получаю результат, как ожидалось, я получаю копирование новых файлов и добавляется запись в реестр. также можно увидеть изменения, внесенные в приложение, т.е. Я получаю обновленное приложение. Однако, когда я пытаюсь применить патч, используя файл msp, он не выполняет эти изменения. и обновление не видно. – sai