DLL не вдалося запустити для інсталяторів MSI


23

dll неможливо запустити

Я здогадуюсь, що це проблема з інсталятором Windows. Я намагався перезапустити службу, але безрезультатно. Я не в змозі встановити нічого, що закінчується .msi . Іноді я отримую таке повідомлення про помилку:

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

Журнали перегляду подій:

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

Продукт: Python 2.7.3 - Помилка 1723. Виникла проблема з цим пакетом інсталятора Windows. Не вдалося запустити DLL, необхідний для завершення цього встановлення. Зверніться до свого сервісного персоналу або постачальника пакетів. Дія CheckDir, запис: _CheckDir @ 4, бібліотека: C: \ Користувачі \ x \ AppData \ Local \ Temp \ MSI570C.tmp

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

Продукт: SSDlife Pro - Помилка 1723. Виникла проблема з цим пакетом інсталятора Windows. Не вдалося запустити DLL, необхідний для завершення цього встановлення. Зверніться до свого сервісного персоналу або постачальника пакетів. Дія WIX_TestVersion, запис: WIX_TestVersion, бібліотека: C: \ Користувачі \ x \ AppData \ Місцеві \ Temp \ MSIA32E.tmp

Пошук за помилкою 1723: Ця помилка може виникнути, якщо у вас застаріла версія Windows Installer

Я отримав пару посилань на Windows Installer, але жодне з них не містить 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

Але не вдалося знайти жодних проблем.


@Serge так, avast, зараз спробували відключити та запустити інсталятор, але це, здається, не допоможе
— Kedar

очистіть темп-папку та повторіть спробу.
— Моав

@Moab nope, це не допомагає
— Кедар,

Будь ласка, вкажіть ОС, де ви спостерігаєте за проблемою.
— Олексій Іванов

@Moab всі вони
— Kedar

Відповіді:


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таблиці.

У мене є два найімовірніших можливих кандидата: візуальне виконання C ++ відсутнє або. Однак це лише здогадки ...


Я бачу лише те, що журнал помилок створюється в темп-каталозі. Більш нічого. Але дивлячись на витяг файлів з інсталятора, я спробував команду msiexec витягти Python, і всі файли тепер доступні так, як вони були б у звичайній установці. За винятком того, що я не бачу жодного запису у списку встановленого програмного забезпечення. Додаючи python до шляху, він працює так, як очікувалося ...
— Kedar

1
Я думаю, це просто відбувається занадто швидко, щоб помітити. Так, ви можете витягти файли з пакета Windows Installer, але він не виконає реєстрацію програми, оскільки продукт не встановлений (з точки зору MSI). Ці файли DLL tmp не є частиною встановленого зображення, вони є помічниками, які запускаються під час встановлення. Щоб отримати його, ви можете скористатися інструментом Orca або декомпілювати msi за допомогою WiX; однак у вас вже є Python.
— Олексій Іванов

Я думаю, що можу жити без реєстрації програмного забезпечення. Повна команда: msiexec / a python.msi / qb TARGETDIR = "C: \ install_path"
— Kedar


@ 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/


-1

Жодне з цих рішень не працювало для мене, однак, коли я перейшов безпосередньо до папки завантаження, правою кнопкою миші натиснув на піктограму встановлення, яку я хотів виконати, і натиснув "запустити як адміністратор", встановлений без більше повідомлень про помилки.


Інсталятори MSI не мають такої можливості.
— Кедар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.