2010-01-15 2 views
5

Я должен заменить его из-за ошибки, которая блокирует удаление программного обеспечения, но Windows не может найти файл MSI, если я использую утилиту поиска файлов, но я думаю, что MSI хранится где-нибудь, где утилита Add or Remove Programs может ее использовать.Где файл MSI копируется после установки?

+0

рекомендуется/** правильный путь ** исправить деинсталлировать проблемы заключается в использовании ** незначительное обновление для «исправления» установленного продукта, а затем запустить его фиксированную последовательность удаления **, как указано ниже, ** saschabeaumont **. Небольшое обновление может быть доставлено как обычный MSI или как пакет исправлений (для огромных продуктов). –

ответ

11

ли не вдаваться в% WINDIR% \ Installer \

Хотя я думаю, что файлы могут переименовываются. Не знаете, где вы получили сопоставление имен из ...

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

+1

excelent! Теперь я уверен, что файл будет переименован, но вы можете найти новое имя в реестре Windows –

+0

ahh рад, что вы знаете, как получить сопоставление –

+1

Для переименованного файла MSI проверьте атрибут LocalPackage внутри реестра по пути - '[ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ \ Products \ \ InstallProperties] '. 'InternalUserId' - это что-то вроде' S-1-5-18'. 'ProductGUID' - это GUID, такой как' 00058CD18F0BF523DA1072073D56715D', встроенный как общедоступное свойство внутри файла MSI. – RBT

-1

Возможно, msi просто удален. Вы можете удалить папку установки и запустить утилиту очистки msi, а затем переустановить свою программу.

+0

Редактировал вопрос, чтобы уточнить –

+0

MSIZAP (Windows Installer Cleanup) - очень опасный инструмент. См. Http://robmensching.com/blog/posts/2009/3/6/More-on-Haacks-Troubleshooting-Windows-MSI-Installers для получения дополнительной информации – saschabeaumont

6

Вы можете принудительно перезапустить/переустановить, используя MSIEXEC, рекомендуемый способ обновления баггинских установочных пакетов, которые не могут быть в противном случае удаляется рекомбинант с фиксированным пакетом, а затем удаляется, как обычно.

MSIEXEC /fv setup.msi 
4

При установке пакета с помощью службы установщика Windows, файл MSI действительно получает кэшированные в скрытой папке "% WINDIR% \ Installer". Он переименовывается, а новое имя представляет собой шестую строку, которая не имеет очевидной корреляции с исходным именем. Что-то вроде «123ab4.msi».

Нетрудно понять, какая из них является кешированной копией вашего приложения. Самый быстрый способ - искать кешированный файл того же размера. Когда вы думаете, что нашли его, наведите указатель мыши на имя файла в проводнике Windows. Всплывающая подсказка появится, и она покажет вам данные из сводного потока информации пакета. Название продукта, имя автора и т. Д. Как только вы найдете нужный файл, вы можете редактировать его с помощью инструмента Orca.

Если вы просто пытаетесь исправить ситуацию на своей собственной машине, то прямое редактирование кэшированной базы данных может быть хорошим вариантом. Однако Microsoft предоставляет встроенный способ решения такой проблемы. Вы можете создать патч (файл msp), который содержит разницу между исходным файлом msi и обновленным msi-файлом. Затем этот патч может быть распространен среди всех, кто уже установил ваше приложение, используя оригинальную установку, и это было бы легко использовать.

MSDN обсуждает создание патча здесь - http://msdn.microsoft.com/en-us/library/aa368060%28VS.85%29.aspx

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

2

Чтобы увидеть полезные имена файлов msi в C:\Windows\Installer, щелкните правой кнопкой мыши вверху проводника и добавьте поле для просмотра темы (возможно, вам нужно будет выбрать больше, поскольку оно не является именем по умолчанию, измененным датой и т. Д.). Здесь вы можете найти msi и использовать его для удаления программ.

3

Я положил много комментариев в ответ принято, так что я думал, что я предпочел бы отправить ответ после создания резюме с несколькими более дополнительными деталями:

Installshield создает копию * .msi файлов в %windir%\installer\ путь, где% windir% - переменная среды, которая обычно указывает на C:\Windows\. Перед созданием копии *.msi, он переименовывает его, используя некоторую случайную номенклатуру, например. Я могу увидеть файл с именем 65ec5c99.msi в моем каталоге C:\Windows\Installer.

Теперь, чтобы выяснить реальное имя продукта для переименованного файла MSI Есть два способа:

  1. Проверить LocalPackage атрибут внутри реестра на пути - [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersio‌​n\Installer\UserData‌​\<InternalUserId>\Pr‌​oducts\<ProductGUID>‌​\InstallProperties]. InternalUserId - это что-то вроде S-1-5-18. ProductGUID - это GUID, такой как 00058CD18F0BF523DA1072073D56715D, встроенный как общедоступное свойство внутри самого файла MSI. Вы можете проверить это общедоступное свойство, открыв файл MSI с помощью любого инструмента, например. orca

  2. Открыть C:\Windows\Installer папку в проводнике. Измените представление каталога на Details. Добавить столбец Subject. Whooaa !! Тайна решена. Название продукта виден прямо в Subject колонке

enter image description here

Смежные вопросы