У меня есть базовый проект MSI, в котором 2 или более его версий могут быть установлены параллельно. Каждая из них находится в другом месте, за исключением одного исполняемого файла, который является общим и имеет ярлык на рабочем столе.
В версии 1.0 MSI у меня есть компонент - установите файлы в \ Program Files \ prod_1.0 Компонент A общих файлов - установите exe в \ Program Files \ prod_shared Общий компонент ярлыка B - создайте ярлык на рабочем столе для exe в компоненте A
В версии 2.0 MSI у меня есть Component - установить файлы в \ Program Files \ prod_2.0 Shared files component A - install exe to \ Program Files \ prod_shared Shared shortcut component B - создать ярлык на рабочем столе для exe в компоненте A
GUID компонента одинаков для обеих версий MSI, и значок, который я использую в компоненте "Общий ярлык", не используется другими ярлыками. Проблема у меня в том, что если у меня 2 версии? устанавливается параллельно, а затем я удаляю одну версию. Я хочу, чтобы ярлык на рабочем столе был удален. Я добавил эту строку в код MsiSetComponentState (hMSI, «Shared_Shortcut_Desktop», INSTALLSTATE_ABSENT);
Но когда я удаляю, я получаю, что этот компонент сообщения не будет удален, поэтому значок «NewShortcut74_AE5D17DE4C4B4737ABB20A0D0358B69E.exe» не будет удален.
Есть идеи, как это решить?