У меня есть несколько файлов, которые не удалось обновить в патче установщика Windows. Они являются динамическими ссылки файлов, с изменениями хэша файла, но таблица MsiFileHash «File_» изменилась для каждого файла, ниже тот же файл в MisFileHash таблице: RTM FiLea: _A0FB2DAA62D356E1B64EA457014BA886 0 543212956 662074909 -1730111711 -2096793600 Patch7 FiLea: _490DC427E0D9E512E96D3E9BF2B317C7 0 -1371102532 -401194406 -232195904 525972747 Может быть, это вызывает сбой обновления. Поэтому я спрашиваю, будет ли способ заставить динамический компонент ссылки для обновления в патче? БлагодаряКак принудительно обновить файл в патче (динамическая ссылка, неверсированная)
ответ
общая причина этого заключается в том, что патч нарушил правила компонентов (например, удалив компонент). Подробный журнал установки патча скажет что-то о SELMGR, и удаление компонента не будет поддерживаться. Обновление исправления поступит в рекламу sed и ничего не обновлять. Было бы полезно разместить вездесущий журнал в любом случае, чтобы увидеть, есть ли запись о замене файла и была ли сделана попытка заменить его и что она сказала (и этого не будет, если бы были нарушены правила компонентов).
Другая проблема более неясна, но может вызвать проблемы. Изменен первичный ключ таблицы MsiFileHash (File_ field). Это означает, что другие первичные ключи в новом MSI также изменились. Это актуально:
, но в нижней строке цитате есть то, что имеет значение «Это необходимо, чтобы первичные ключи не изменяются между версиями пакета.» И это потому, что MSI является реляционной базой данных и изменение ключей в разных версиях продукта приведет к непредсказуемым последствиям.
Нет никаких указаний относительно того, какой инструмент вы используете для создания исправления, но большинство из них обычно не вызывает ни одной из этих проблем, поскольку они создают патч, учитывающий структуру RTM и восстановленный файл MSI ,