След надграждане до Windows Installer 3.1 инсталаторът на Windows (Windows Installer) прекъсва инсталацията без да уведомява потребителя

СИМПТОМИ

Когато инсталирате пакета на Microsoft Windows Installer (.msi), автоматичният (протичащ без взаимодействие с потребителя) инсталационният процес прекъсва, ако инсталаторът се опитва да инсталира по-късна версия на системен файл, защитаван от функцията Windows File Protection (WFP). При разглеждане на журналния файл на инсталатора на Windows или журналния файл на приложенията ще забележите Windows Installer Error 1931 (грешка 1931 на инсталатора на Windows).

ПРИЧИНА

Преди издаването на версия 3.1 на инсталатора на Windows (Microsoft Windows Installer), опитите на пакет да инсталира по-късна версия на защитен от WFP файл в режим на автоматична инсталация са завършвали неуспешно. Въпреки това инсталационният процес е продължавал и е съобщавал за успешно завършване. С издаването на Windows Installer 3.1 ситуацията се е променила. При версия 3.1, ако при автоматичния (протичащ без взаимодействие с потребителя) инсталационен процес инсталирането на файла, защитен от WFP, преминава неуспешно, инсталацията се прекъсва и се възстановява състоянието на системата преди нея. WFP предпазва системните файлове от записи на приложенията върху тях. Инсталаторът на Windows не може да записва върху защитени от WPF файлове.

РАЗРЕШЕНИЕ

За да разрешите този проблем, използвайте Метод 1, ако сте крайният потребител на инсталационния пакет. Използвайте Метод 2, ако създавате инсталационния пакет на Windows.
  • Метод 1
    Ако сте крайният потребител на инсталационен пакет, който ще инсталира софтуера на компютър, сдобийте се с редистрибутив на Windows Installer 3.1 (v2).

    Редистрибутивът Windows Installer 3.1 (v2) е актуализация на Windows Installer 3.1. Тази актуализация елиминира проблема, описан в раздела "Симптоми".

    За допълнителна информация относно Windows Installer 3.1 (v2) щракнете върху следния номер, за да видите съответната статията в базата знания на Microsoft:

    893803 Windows Installer 3.1 (v2) е наличен (Тази връзка може да сочи към съдържание, което е отчасти или изцяло на английски)

    За да определите, коя версия на инсталатора на Windows присъства в системата към момента, изпълнете следните стъпки:
    1. В Windows Explorer намерете следния файл:
      Msi.dll
      Този файл се намира в папката Windows\System 32.
    2. Щракнете с десния бутон на мишката върху Msi.dll и изберете Properties (Свойства).
    3. Щракнете върху раздела Version (Версия). Отбележете си версията на файла.
      • Ако версията е 3.1.4000.1823, това означава, че Windows Installer 3.1 (v1) е инсталиран на компютъра.
      • Ако версията е 3.1.4000.2435, това означава, че на компютъра е инсталиран Windows Installer 3.1 (v2).
  • Метод 2
    Ако създавате инсталационен пакет за Windows с цел да инсталирате създадено от вас приложение, препоръчително е да зададете условие в базата данни на инсталатора на Windows, която се създава за инсталационния проект, предотвратяващо инсталирането на защитени от WPF компоненти в операционни системи с WPF. Този метод е предпочитаното заобиколно решение. Базиран на Windows Installer инсталационен процес не бива трябвало да се опитва да актуализира защитени от WFP файлове.

    За да зададете условие, добавете го към колоната с условия на таблицата с компоненти в базата данни на Windows Installer. За повече информация посетете следния уебсайт от мрежата на разработчици на Microsoft (MSDN):

СТАТУС

Microsoft потвърждава, че това е проблем в Microsoft Windows Installer 3.1.

ДОПЪЛНИТЕЛНА ИНФОРМАЦИЯ

За допълнителна информация относно WFP щракнете върху следния номер, за да отворите съответната статия в базата знания на Microsoft:

222193 Описание на функцията за файлова защита в Windows (WFP) (Тази връзка може да сочи към съдържание, което е отчасти или изцяло на английски)

Свойства

ИД на статията: 898628 – Последен преглед: 7.01.2008 г. – Редакция: 1

Обратна връзка