Как далеко вы хотите взять это?Вы просто хотите скрыть запись вашего продукта в разделе «Установка и удаление программ», или вы буквально хотите, чтобы MSI даже не помнила, что он не установлен?IE не удаляются, не ремонтируются, не обновляются, не исправляются.
Если первое желание, обратите внимание на свойство ARPSYSTEMCOMPONENT .Если желание является последним, вы хотите сделать «троянский MSI».Обратите внимание, что многие эксперты против этого, но я делал это время от времени, как и команды в крупных компаниях, таких как Microsoft и Google.Чтобы создать троянский MSI, вы намеренно пропускаете стандартные действия Опубликовать в своей программе установки, такие как Действие PublishProduct .Вы должны быть действительно уверены, что понимаете, каковы ваши цели и от чего вы отказываетесь при этом, но бывают моменты, когда это имеет смысл.
Обновление: OP указывает, что целью является исправление установленных MSI.
Это действительно не должно быть сделано.Вы должны делать правильные обновления / исправления с MSI и MSP.Однако то, что вы просите, может быть сделано.В месте, где я работал, у них было нечто, называемое «не патч, патч».Это довольно уродливо, но работает.Поймите, что вы никогда не сможете восстановить исправление (кроме как повторно применить его), и вы также можете попасть в ситуации, когда восстановление MSI отменяет исправление, поэтому вам придется применить исправление снова.Конечно, в программе «Установка и удаление программ» не нужно удалять патч или артефакт версионирования для него.
Так что да, это можно сделать, но я, честно говоря, не советую вам это делать.Я только «поддерживал» его на той работе, потому что кто-то другой использовал его, и бизнес-сфера уже привыкла к нему как (поддельный) шаблон обслуживания.