DLL не заменяются при незначительном обновлении

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

SELMGR: ComponentId '{C1B06529-966C-2A82-EF0C-A5CFA0113872}' зарегистрирован для функции 'X', но отсутствует в таблице компонентов. Удаление компонентов из функции не поддерживается!

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

Во время первой установки у меня есть следующая строка:

Выполнение op: ComponentRegister(ComponentId={C1B06529-966C-2A82-EF0C-A5CFA0113872},KeyPath=[путь]\Newtonsoft.Json.dll, состояние =3, диск =1,SharedDllRefCount=1,BinaryType=0)

Есть ли способ сказать installshield игнорировать это?

1 ответ

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


Вы удалили файл Newtonsoft.Json.dll в последней версии вашей установки? Правила, которые вы должны соблюдать, чтобы иметь возможность использовать незначительное обновление, довольно строги. Пожалуйста, прочитайте раздел "Правила обновления" здесь: http://www.installsite.org/pages/en/msi/updates.htm. Есть еще несколько ограничений - этот список довольно старый. Похоже, что вы удалили вышеупомянутый файл, и это приводит к сбою вашего незначительного обновления.

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

Installshield имеет довольно хороший справочный материал, который поможет вам настроить серьезное обновление. Просто поищите в онлайн справке. Вот только онлайн-версия их документации для справки. По сути, вы идете в " Вид обновлений" и следуйте инструкциям, которые вы видите там.


Также см. Ответ Michael Urman(насколько я знаю, разработчик Installshield) здесь: Установить незначительный компонент обновления Installshield. Он предоставляет еще две хорошие ссылки для вас, чтобы проверить.

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