Код ошибки MSI 2869 в Vista - PullRequest
       26

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

4 голосов
/ 21 января 2009

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

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

Ответы [ 5 ]

3 голосов
/ 14 февраля 2012

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

В этом решении исправлена ​​ошибка отображения ошибок, а также исправлена ​​проблема привилегий Impersonation / Admin в 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

2 голосов
/ 21 января 2009

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

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

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

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

1 голос
/ 01 апреля 2010

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

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

1 голос
/ 22 января 2009

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

0 голосов
/ 13 января 2012

Звонок

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

помог мне.

...