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. Он предоставляет еще две хорошие ссылки для вас, чтобы проверить.