Имам основен MSI проект, който може да инсталира 2 или повече негови версии паралелно, всяка на различно място, с изключение на един exe, който е споделен и има пряк път на работния плот.
Във версия 1.0 MSI имам Component – инсталирайте файлове в \Program Files\prod_1.0 Споделени файлове компонент A - инсталирайте exe в \Program Files\prod_shared Споделен пряк път компонент B - създайте пряк път на работния плот към exe в компонент A
Във версия 2.0 MSI имам Component – инсталирайте файлове в \Program Files\prod_2.0 Споделени файлове компонент A - инсталирайте exe в \Program Files\prod_shared Споделен пряк път компонент B - създайте пряк път на работния плот към exe в компонент A
GUID на компонента е еднакъв и за двете версии на MSI и иконата, която използвам в компонента за споделен пряк път, не се използва от други преки пътища. Проблемът, който имам, е, че ако имам 2 версии? инсталиран паралелно и след това деинсталирам една версия, която искам прекият път на работния плот да бъде премахнат. Добавих този ред към кода MsiSetComponentState(hMSI,"Shared_Shortcut_Desktop",INSTALLSTATE_ABSENT);
Но когато деинсталирам, получавам това съобщение, компонентът няма да бъде премахнат, така че иконата „NewShortcut74_AE5D17DE4C4B4737ABB20A0D0358B69E.exe“ няма да бъде премахната.
Някаква идея как да го реша?