Может ли установщик MSI установить файлы и завершить работу, не оставляя отпечатка? - PullRequest
2 голосов
/ 08 ноября 2010

Я использую старую версию InstallShield просто для того, чтобы просто скопировать файлы на локальный жесткий диск, а затем прервать, чтобы установщик не создавал отпечатки стоп, например, HKLM \ Software \ Microsoft \ Windows \CurrentVersion \ Uninstall {мой GUID} и C: \ Program Files \ InstallShield Информация об установке {мой GUID}.

Я хочу изменить свой установщик на MSI, но я не знаю, может ли MSI сделать то же самое,так как все, что я знаю, если я прерву, MSI выполнит откат.

Если я могу сделать это с MSI, как я могу это сделать?

TIA.

Ответы [ 2 ]

3 голосов
/ 08 ноября 2010

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

2 голосов
/ 08 ноября 2010

Как далеко вы хотите взять это?Вы просто хотите скрыть запись вашего продукта в разделе «Установка и удаление программ», или вы буквально хотите, чтобы MSI даже не помнила, что он не установлен?IE не удаляются, не ремонтируются, не обновляются, не исправляются.

Если первое желание, обратите внимание на свойство ARPSYSTEMCOMPONENT .Если желание является последним, вы хотите сделать «троянский MSI».Обратите внимание, что многие эксперты против этого, но я делал это время от времени, как и команды в крупных компаниях, таких как Microsoft и Google.Чтобы создать троянский MSI, вы намеренно пропускаете стандартные действия Опубликовать в своей программе установки, такие как Действие PublishProduct .Вы должны быть действительно уверены, что понимаете, каковы ваши цели и от чего вы отказываетесь при этом, но бывают моменты, когда это имеет смысл.

Обновление: OP указывает, что целью является исправление установленных MSI.

Это действительно не должно быть сделано.Вы должны делать правильные обновления / исправления с MSI и MSP.Однако то, что вы просите, может быть сделано.В месте, где я работал, у них было нечто, называемое «не патч, патч».Это довольно уродливо, но работает.Поймите, что вы никогда не сможете восстановить исправление (кроме как повторно применить его), и вы также можете попасть в ситуации, когда восстановление MSI отменяет исправление, поэтому вам придется применить исправление снова.Конечно, в программе «Установка и удаление программ» не нужно удалять патч или артефакт версионирования для него.

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

...