Visual Studio 2010: установщик Windows, использующий msiexec.exe, возвращает ошибку MSI 2727 - PullRequest
7 голосов
/ 26 июля 2011

У меня есть проект установки Visual Studio, использующий файл msiexec.exe для создания элемента Uninstall , как указано в >> THIS << </a> статья на SO.

Установщик не запускается.

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

Error Code 2727

Текст (для функций поиска):

Программа установки обнаружила непредвиденную ошибку при установке этого пакета. Это может указывать на проблему с этим пакетом. Код ошибки 2727.

Я нашел набор кодов ошибок MSI , а код ошибки 2727 преобразуется в

The directory entry '[2]' does not exist in the Directory table.

Может ли кто-нибудь помочь мне исправить это? Что мне делать?

[UPDATE]

По предложению Cosmin Pirvu я создал журнал ошибок для моего установщика. После просмотра, кажется, что моя ошибка установки может быть результатом наличия ссылки на Not Installed file msiexec.exe , который я использую вместе с [ProductCode] моего Проекта для создать ссылку Uninstall .

Файл журнала, показанный ниже, показывает, что моя установка завершается неудачно, когда установщик пытается создать временный файл для msiexec.exe , а затем возникает другая ошибка, когда он пытается отобразить значок ошибки.

Файл >> install.log на Сайтах Google << </a> является выводом моего файла журнала ошибок (Подсказка: просто выполните поиск по Return value 3, чтобы получить доступ к ошибкам).

[ОБНОВЛЕНИЕ 2]

У меня есть ссылка для удаления в проекте установки, которая ссылается на командный файл uninstall.bat в моем основном проекте:

@echo off
%windir%\system32\msiexec.exe /x %1

Ссылка Arguments на Uninstall имеет значение [ProductCode], поскольку переключатель /x жестко запрограммирован в командном файле.

[Решение]:

Установщик Visual Studio не создавал папку, в которой были некоторые необходимые библиотеки DLL.

Ответы [ 4 ]

4 голосов
/ 01 декабря 2015

Старый вопрос, я знаю - просто хотел добавить некоторую информацию, которая помогла мне с проектом установщика Windows в Visual Studio 2015, на случай, если кто-нибудь столкнется с этой темой.

Я получил то же сообщение об ошибке, 2727. Моя проблема заключалась в том, что я включал исходный код в папку «src» в каталоге установки. Просматривая выходные файлы для источника, я заметил несколько таких файлов:

\ OBJ \ Release \\ TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs

Да, это включало дополнительную косую черту после релиза. Мне пришлось добавить исключение (щелкните правой кнопкой мыши вывод Исходные файлы -> ExcludeFilter), чтобы исключить эти файлы из установки. Я добавил "* Временный *", чтобы исключить только эти файлы.

Может быть, кто-то еще может объяснить, почему были созданы эти временные файлы, все, что я знаю, это то, что это решило проблему. Надеюсь, это поможет кому-то, кто ищет эту тему.

3 голосов
/ 27 июля 2011

Первым шагом должно стать создание журнала установки , чтобы увидеть, что вызывает ошибку.

Судя по опубликованному вами журналу, ваш MSI пытается использовать каталог, которого нет в таблице каталогов. Вы используете какие-либо модули слияния или специальные пользовательские действия? Если это так, попробуйте определить, используют ли они каталог из вашего пакета.

Вы упомянули что-то о ярлыке удаления. Можете ли вы дать нам более подробную информацию?

2 голосов
/ 24 мая 2016

Я знаю, что это старый вопрос, но, как и @Riccaforte, у меня были некоторые проблемы, чтобы исправить это в Visual Studio 2015. Что я сделал, так это просто удалил все мои исходные файлы из моей папки приложений, и я не знаю почему,но он добился цели.

1 голос
/ 04 декабря 2015

Если вы удалите каталог или каталоги из таблицы каталогов, это вызовет проблему с другими таблицами, которые все еще используют эти переменные каталога.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...