Заменить файл из MSI - PullRequest
       0

Заменить файл из MSI

1 голос
/ 09 декабря 2010

Я планирую заменить файл DLL в файле MSI.Есть ли способ сделать это, не влияя на установку MSI

Ответы [ 3 ]

2 голосов
/ 05 января 2012

Прежде всего, вы можете попробовать другие альтернативы, чем изменение MSI напрямую.Это редко хороший путь, но у вас могут быть свои причины.Для других опций, проверьте MSDN на патчи .

Но если вы собираетесь изменить его напрямую, проверьте эту запись в блоге .В нем объясняется, как использовать Orca, InstEdit, MSIdb и IExpress для извлечения CAB, распаковки CAB, замены файла, повторного сжатия и прикрепления файла CAB обратно в MSI.

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

InstEdit (http://www.instedit.com/) работает, но это не интуитивно понятный инструмент. Вам не нужно иметь плюсовую версию, базовая версия для этого работает. Просто завершите ее использование. Вот процесс.
1. Возьмите старый MSI и установите его, чтобы получить все исходные цели установки.

скопировать все цели установки в рабочий каталог с вашим текущим MSI.

откройте InstEdit и откройте MSI (или просто перетащите MSI в интерфейс InstEdit)

Откройте вкладку Таблицы (см. Изображение)

Щелкните элемент «Медиа», и справа вы увидите некоторую информацию

Щелкните правой кнопкой мыши в правом окне и выберите «Перестроить выбранное».CAB.

Если вы замените старый элемент в каталоге, где найдены все элементы для MSI, то при нажатии кнопки «Перестроить выбранные CAB» будет импортирована более новая версия элемента.автоматически и перестройте вашу CAB.

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

InstEdit Media Rebuild

РЕДАКТИРОВАТЬ

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

Когда вы пытаетесь [Восстановить выбранные CAB-файлы], вы можете получить ошибку, которая выглядит следующим образом:

add folders

Это несколько загадочная ошибка.InstEd пытается сообщить вам, что вам нужен CommonFilesFolder, созданный в месте, из которого вы пытаетесь восстановить CAB.Затем поместите Main.exe в эту папку.Он также ищет Main.ico в той же папке.

Все, что вам нужно сделать, это скопировать целевой .exe и .ico (или любые упомянутые файлы) в CommonFilesFolder и снова запустить пересборку, и она будет работать.

0 голосов
/ 09 декабря 2010

Попробуйте InstEdit из http://apps.instedit.com/,, но я не уверен, возможно ли заменить файл внутри пакета msi. Также вы можете взглянуть на редактор Microsoft Orca msi, который поставляется с Windows SDK.

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