ICE61

ICE61 проверяет таблицу обновления, чтобы убедиться, что выполняются следующие условия:

  • Все свойства ActionProperty не предварительно создаются в таблице Property.
  • Все свойства ActionProperty являются общедоступными.
  • Все свойства ActionProperty включены в свойство SecureCustomProperties .
  • Все свойства ActionProperty уникальны для каждой записи в таблице Upgrade.
  • Все значения VersionMax не меньше соответствующих значений VersionMin.
  • Значения VersionMin и VersionMax являются допустимыми версиями продукта. Допустимый формат версии продукта см. в свойстве ProductVersion .
  • Не предпринимается никаких попыток удаления более новой или равной версии текущего продукта.

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

Результат

ICE61 выводит предупреждение или ошибку, если какое-либо из описанных выше условий не соответствует действительности.

Пример

ICE61 сообщает о следующих ошибках и предупреждениях для приведенных примеров.

This product should remove only older versions of itself. The Maximum version is not less than the current product. (2.01.0000 2.01.0000)

В этом случае первая строка попытается удалить продукт той же версии. (Столбец VersionMax равен версии продукта в таблице Property).

Чтобы устранить эту ошибку, используйте версию в столбце VersionMax ниже текущей версии, указанной в таблице Property. Удалите бит msidbUpgradeAttributesVersionMaxInclusive из столбца Атрибуты, если versionMax равен текущей версии. Если цель заключается только в том, чтобы обнаружить продукт, а не удалить его, добавление бита msidbUpgradeAttributesOnlyDetect в столбец Attributes также исправит эту ошибку.

Upgrade.ActionProperty EnglishAPPFOUND must be added to the SecureCustomProperties property.

Если свойство не указано в свойстве SecureCustomProperties , свойство не передается на стороне сервера установки при его обнаружении.

Чтобы устранить эту ошибку, добавьте свойство в SecureCustomProperties.

Upgrade.ActionProperty EnglishAPPFOUND must not contain lowercase letters.

Свойства обновления должны быть общедоступными, чтобы результат передавался на стороне сервера установки.

Чтобы устранить эту ошибку, используйте все прописные буквы в имени свойства.

Upgrade.ActionProperty OLDAPPFOUND may be used in only one record of the Upgrade table.

Свойство можно использовать только в одной строке таблицы Upgrade.

Чтобы устранить эту ошибку, используйте другое свойство для второй строки.

Upgrade.VersionMax cannot be less than Upgrade.VersionMin. (OLDAPPFOUND)

Минимальная версия должна быть меньше максимальной версии.

Чтобы устранить эту ошибку, проверка номера версий для опечаток. Если они верны и вы хотите использовать диапазон между двумя версиями, переключите их так, чтобы Значение VersionMin было меньше VersionMax.

Таблица свойств

Свойство Значение
UpgradeCode {61AA4C55-E17F-11D2-93BB-0060089A76DB}
ProductVersion 2.01.0000
SecureCustomProperties OLDAPPFOUND

 

Обновление таблицы

UpgradeCode VersionMin VersionMax Язык Атрибуты Удалить ActionProperty
{61AA4C55-E17F-11D2-93BB-0060089A76DB} 2.01.0000 513 OLDAPPFOUND
{61AA4C55-E17F-11D2-93BB-0060089A76DB} 2.01.0001 2.01.0000 OLDAPPFOUND
{C6CB4596-D8E8-D5A4-635F-9FE456D682EB} 1.00.0000 2.00.0000 1033 [AppFeatureEnglish] АнглийскийAPPFOUND

 

Справочник по ICE