Не удалось запустить DLL для установщиков MSI

23

DLL не может быть запущен

Я предполагаю, что это проблема с установщиком Windows. Я попытался перезапустить службу, но безрезультатно. Я не могу установить ничего, что заканчивается на .msi . Иногда я получаю такое сообщение об ошибке:

введите описание изображения здесь

Журналы просмотра событий:

Установщик Python:

Продукт: Python 2.7.3 - Ошибка 1723. Проблема с этим пакетом установщика Windows. DLL, необходимая для завершения этой установки, не может быть запущена. Обратитесь в службу поддержки или к поставщику пакета. Действие CheckDir, запись: _CheckDir @ 4, библиотека: C: \ Users \ x \ AppData \ Local \ Temp \ MSI570C.tmp

Установщик SSDLife:

Продукт: SSDlife Pro - Ошибка 1723. Проблема с этим пакетом установщика Windows. DLL, необходимая для завершения этой установки, не может быть запущена. Обратитесь в службу поддержки или к поставщику пакета. Действие WIX_TestVersion, запись: WIX_TestVersion, библиотека: C: \ Users \ x \ AppData \ Local \ Temp \ MSIA32E.tmp

Поиск по ошибке 1723: эта ошибка может возникнуть, если у вас устаревшая версия установщика Windows

Я получил пару ссылок для установщика Windows, но ни одна из них не имеет Windows 7 в списке поддерживаемых операционных систем.

https://www.microsoft.com/en-us/download/details.aspx?id=25 и

https://www.microsoft.com/en-us/download/details.aspx?id=8483&WT.mc_id=MSCOM_EN_US_DLC_DETAILS_131Z4ENUS22007

Windows (7 x64) обновлена.

Также пробовал это исправить: http://support.microsoft.com/mats/Program_Install_and_Uninstall

Но он не мог найти никаких проблем.

Кедар
источник
@ Серж, да, avast, попытался отключить и запустить установщик прямо сейчас, но, похоже, это не помогло
Kedar
очистите вашу временную папку и попробуйте снова.
Моав
@ Моаб Нету, это не помогает
Кедар
Пожалуйста, укажите ОС, в которой вы наблюдаете проблему.
Алексей Иванов
@Moab всех их
Кедар

Ответы:

26

Я тоже столкнулся с этим вопросом. Ответ Алексея Иванова не совсем помог мне, но, тем не менее, вдохновил меня на расследование C:\Users\x\AppData\Local\Temp.

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

Тем не менее, после того, как будет Properties > Securityна C:\Users\x\AppData\Local\Tempпапке и дают , что разрешение, монтажники , что предыдущее были неудовлетворительные в настоящее время работают! Ура! Так как уже был и доступ, подозреваю, что также добавлено необходимое разрешение.EveryoneFull controlEveryoneReadWriteFull controlExecute

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

Дмитрий Минковский
источник
1
Это решает мою проблему! Но я думаю, что это проблема безопасности, чтобы дать «Все» полный доступ к временной папке пользователя. Я просто предоставил себе полный доступ, и это работает. По умолчанию в каталоге только что были «Специальные разрешения» для пользователя.
Кедар
Да, это имеет больше смысла, чем давать разрешение Everyone:-). Во всяком случае, мне интересно, что может быть основной причиной этой проблемы. У меня были проблемы с несколькими установщиками, включая установщик iTunes - очень популярный установщик! Интересно, что случилось, что нарушило права на этот каталог.
Дмитрий Минковский
Я проверил другие ограниченные учетные записи / учетные записи администратора на том же компьютере, и все они, кажется, имеют правильно установленные разрешения.
Кедар
Это не сработало для меня (Windows 7, 32 бит). Это сделал . Моя ошибка, однако, заключалась в следующем: «Существует проблема с этим пакетом установщика Windows. Программа, запущенная как часть установки, завершилась не так, как ожидалось. Обратитесь в службу поддержки или к поставщику пакета».
aliteralmind
Это не сработало для меня, хотя симптомы были похожи. Оказалась конфликтующая установка PIP. Это исправило меня: stackoverflow.com/a/23350061/797945
Jagu
8

Простой обходной путь - запустить командную оболочку от имени администратора (просто найдите cmd.exe и затем щелкните правой кнопкой мыши -> запустить от имени администратора), а затем перейдите в расположение пакета MSI и запустите msiexec /i packagename.msi. Это сработало для меня.

Марко Ланцетта
источник
1
Это не обходной путь (не устанавливает все программное обеспечение должным образом), и он не работает (для этой конкретной проблемы)
Kedar
Одна маленькая ошибка: вот правильная командаmsiexec /i packagename.msi
Это решение отлично работает и лучше, чем предоставление всем пользователям папки «Полные права доступа к папке Temp» только для установщика. (Обязательно прочитайте второй комментарий для правильного синтаксиса.)
Гаурав Кумар
+1 Это решение также должно быть включено в выбранный выше ответ. Этот выбранный ответ должен быть последним средством каждого.
tom_mai78101
1

В вашей системе должна отсутствовать необходимая DLL.

В обоих описанных случаях установщик Windows попытался выполнить пользовательское действие, расположенное в DLL. Эти файлы .tmp: C:\Users\x\AppData\Local\Temp\MSI570C.tmpи C:\Users\x\AppData\Local\Temp\MSIA32E.tmpдействительно являются файлами DLL, извлеченными из MSI.

Но по какой-то причине не удалось загрузить DLL.

Самое главное, чтобы выяснить, какая DLL отсутствует. Пока сообщение об ошибке отображается на экране, перейдите в временный каталог и посмотрите, существует ли временный DLL-файл. Если он есть, скопируйте его с расширением DLL. Затем, чтобы узнать, какая DLL из необходимых отсутствует, вы можете использовать depends.exeутилиту из Visual Studio.

Если временный файл уже удален, единственный способ получить DLL - это извлечь ее из пакета, из Binaryтаблицы.

У меня есть два наиболее вероятных возможных кандидата: отсутствует среда выполнения Visual C ++ или среда выполнения .Net. Тем не менее, это всего лишь предположение ...

Алексей Иванов
источник
Я вижу только создание журнала ошибок во временном каталоге. Ничего больше. Но, изучая извлечение файлов из установщика, я попробовал команду msiexec для извлечения Python, и все файлы теперь доступны, как при обычной установке. За исключением того, что я не вижу никакой записи в списке установленного программного обеспечения. Добавление Python к пути, он работает как положено ...
Кедар
1
Я думаю, это происходит слишком быстро, чтобы заметить. Да, вы можете извлечь файлы из пакета установщика Windows, но он не будет выполнять регистрацию программы, потому что продукт не установлен (с точки зрения MSI). Эти файлы tmp DLL не являются частью образа установки, они являются помощниками, которые запускаются во время установки. Чтобы получить его, вы можете использовать Orca tool или декомпилировать msi с помощью WiX; тем не менее, у вас уже есть Python.
Алексей Иванов
Я думаю, что могу жить без регистрации программного обеспечения. Полная команда: msiexec / a python.msi / qb TARGETDIR = "C: \ install_path"
Кедар
@ 101 Если это так, то установщик не работает, я имею в виду, что это ошибка в нем: установщик не должен зависеть от дополнительного программного обеспечения, включая время выполнения MSVC - он должен быть автономным. Если требуется MSVC 2008 или 2010, эти пакеты должны быть установлены вместе с продуктом (содержится в самом установщике).
Алексей Иванов
0

Я попробовал то, что предложил Димадима, но у меня все еще была небольшая проблема с доступом. Я откопал инструмент для Win 7 / Vista, который называется взять на себя ответственность. Это добавляет контекстное меню, чтобы щелкнуть правой кнопкой мыши, и вы можете «взять на себя ответственность». Я думал, чтобы попробовать, что это работает как шарм.

http://www.howtogeek.com/howto/windows-vista/add-take-ownership-to-explorer-right-click-menu-in-vista/

Jarmerson
источник
-1

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

girlymomma88
источник
Установщики MSI не имеют такой возможности.
Кедар