Мой установщик создает ключ реестра под HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Desktop \ NameSpace, который создает значок на рабочем столе во время установки, но после удаления этот значок остается до Я нажимаю F5. Так я гугл и нашел его от here, поэтому я добавил:VBScript для обновления рабочего стола в Wix или MSI
<CustomAction Id="CA_RefreshDesktopVB" Script="vbscript">
<![CDATA[
Set WSHShell = CreateObject("WScript.Shell")
strDesktop = WSHShell.SpecialFolders("Desktop")
WSHShell.AppActivate strDesktop
WSHShell.SendKeys "{F5}"
]]>
</CustomAction>
<InstallExecuteSequence>
...
<Custom Action="CA_RefreshDesktopVB" OnExit="success"/>
Однако это не обновляет, когда удаление завершено. Я сделал что-то неправильно или это просто вне VB Script?
Если вы регистрируете удаление, оно показывает, что пользовательское действие выполняется? – scott
Да, так и было. Обратите внимание, что, поскольку значок не был создан под «Рабочим столом» пользователя, например, C: \ Users \ john \ Desktop или C: \ Users \ public \ Desktop, это не сработало, я думаю. – Petronius
Ну, я отказался от использования VBScript. Вместо этого я просто создал CA Type 1, используя API-интерфейс оболочки, например. SHGetSpecialFolderLocation() и SHChangeNotify() b/c Я знаю, что это работает. – Petronius