Код ошибки MSI 2869 в Vista

У меня есть MSI для приложения .NET, которое я создал с помощью Visual Studio 2005, который включает настраиваемое действие для записи некоторых ключей реестра в конце установки. Я обнаружил, что установщик отлично работает с Windows XP SP2 и SP3. Однако, когда я пытаюсь запустить установщик на ПК с Vista, он, кажется, работает почти до конца, но затем умирает и откатывается, выдавая код ошибки 2869.

Я вошел в систему с учетной записью администратора, но все равно получаю ту же ошибку.


person Millhouse    schedule 21.01.2009    source источник


Ответы (5)


Я нашел однозначный ответ на эту проблему. Ошибка 2869 - это бессмысленная ошибка, означающая «Невозможно отобразить ошибку для реальной проблемы». Настоящая ошибка скрыта. Во многих случаях эта ошибка связана с выдачей себя за другое лицо, но не всегда!

Это решение не только исправляет ошибку отображения ошибок, но и устраняет проблему с олицетворением / правами администратора в Vista и Windows 7.

Единственное, чего не хватает, - это удержание за руку (для кого-то, кто не хочет ничего знать о javascript, например, меня), чтобы заставить это работать.

  1. посетите http://blogs.msdn.com/b/nikhiln/archive/2007/04/25/post-build-script-to-fix-msi-issues-in-vista-for-vs-2005-setup-and-deployment-project.aspx

  2. Возьмите сценарий и сохраните его в папке проекта развертывания как PostBuildVistaFix.js.

  3. Вызов свойств проекта развертывания
  4. PostBuildEvent изменен на

    cscript.exe ..\PostBuildVistaFix.js your_installer.msi

person Mark Lakata    schedule 13.02.2012
comment
Кстати, этот сценарий полезно добавлять во все ваши проекты VS2005 на случай, если когда-нибудь возникнет другая случайная ошибка. - person Mark Lakata; 14.02.2012

Хорошо, я нашел одно решение своей проблемы:

Если я вхожу в систему как администратор и вместо того, чтобы просто запустить программу установки, дважды щелкнув файл msi или setup.exe, если я щелкну правой кнопкой мыши и выберу «Запуск от имени администратора», моя программа будет успешно установлена.

Похоже, это связано с тем, что на машине был включен UAC. Я попробовал это на машине Vista с выключенным UAC, и установщик работал нормально, когда он запускался обычным пользователем с правами администратора.

Аналогичный быстрый и грязный подход к исправлению этого можно найти здесь

person Millhouse    schedule 21.01.2009

Решение, которое я придумал, состоит в том, чтобы распространять клиентам EXE с манифестом, настроенным для активации повышения прав UAC в начале установки, а не MSI (наше приложение в любом случае должно быть установлено для каждой машины)

person saschabeaumont    schedule 21.01.2009

Проблема связана с тем, что Vista применяет бит NoImpersonate в настраиваемых действиях. Ранее это игнорировалось XP.

Вы не можете установить бит в Visual Studio 2005, но здесь - это процесс, который нужно пройти, чтобы заставить его работать.

person MattH    schedule 01.04.2010

Звонок

msiexec /a "path-to-package.msi"

помог мне.

person exbarboss    schedule 13.01.2012