Как вы программно удаляете рекламируемый ярлык?

Итак, я повредил установщик MSI и развернул его после тестирования только установки, а не удаления (плохо знаю, добавил запуск exe после установки, но забыл указать, что это должно произойти только при установке не деинсталлировать).

Я нашел Установщик Windows Installer и соответствующий msizap, который я буду использовать для автоматизации процесса. Проблема заключается в том, что, когда новая версия устанавливается сверху, объявленный ярлык все равно пытается выполнить ремонт (или что бы он ни делал, пытаясь загрузить старую версию) и терпеть неудачу. Запуск программы непосредственно из файла работает отлично, но мне нужно автоматически удалить объявленные ярлыки. Сейчас не обязательно быть невероятно надежной, довольно небольшой частной бета-установкой, поэтому можно предположить, что ярлыки находятся в первоначально установленных местах рабочего стола и меню "Пуск".

Есть ли какие-то особые проблемы, которые мне нужно учитывать для рекламируемого ярлыка или я могу просто рассматривать его как любой другой файл и просто удалить его?

Ответ 1

Подтвержденные ярлыки AFAIK отвечают за выполнение настройки.
Это специальные файлы lnk, которые указывают на установщик с параметром spicel, который будет преформировать настройку, когда они будут активированы (вы можете увидеть информацию с помощью блокнота или шестнадцатеричного редактора).
тем не менее, MSI zap должен удалить все следы настройки.
Выполняется ли настройка, если вы делаете zap, а затем нажмите ярлык? или вы получите сообщение об ошибке?

Ответ 2

Что касается ярлыка, это обычный файл, который можно удалить.

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

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