我有基本的 MSI 项目,它的 2 个或多个版本可以并行安装每个版本到不同的位置,除了一个共享的 exe,它在桌面上有一个快捷方式。
在 1.0 版 MSI 我有组件 - 将文件安装到 \Program Files\prod_1.0 共享文件组件 A - 将 exe 安装到 \Program Files\prod_shared 共享快捷方式组件 B - 在桌面上创建一个快捷方式到组件 A 中的 exe
在 2.0 版 MSI 我有组件 - 将文件安装到 \Program Files\prod_2.0 共享文件组件 A - 将 exe 安装到 \Program Files\prod_shared 共享快捷方式组件 B - 在桌面上创建一个快捷方式到组件 A 中的 exe
两个 MSI 版本的组件 GUID 相同,并且我在共享快捷方式组件中使用的图标未被其他快捷方式使用。我遇到的问题是,如果我有 2 个版本?并行安装,然后我卸载了一个我希望删除桌面快捷方式的版本。我将此行添加到代码 MsiSetComponentState(hMSI,"Shared_Shortcut_Desktop",INSTALLSTATE_ABSENT);
但是当我卸载时,我收到此消息组件不会被删除,因此不会删除“NewShortcut74_AE5D17DE4C4B4737ABB20A0D0358B69E.exe”图标。
知道如何解决吗?