【问题标题】:How do you remove an advertised shortcut programmatically?如何以编程方式删除广告的快捷方式?
【发布时间】:2009-04-14 17:14:22
【问题描述】:

所以我搞砸了一个 msi 安装程序并在仅测试安装后部署它,而不是卸载(我知道,在安装后添加了 exe 的运行,但忘记指定它应该只在安装而不是卸载时发生)。

我找到了Windows Installer Cleanup 实用程序和相关的 msizap,我将使用它们来自动化该过程。现在的问题是,当之后在顶部安装较新版本时,宣传的快捷方式仍会尝试进行修复(或尝试加载旧版本的实际操作)并失败。直接从文件运行程序可以正常工作,但我需要以自动方式删除广告的快捷方式。它现在不需要非常强大,相当小的私人测试版安装基础,因此可以假设快捷方式位于桌面和开始菜单的原始安装位置。

对于宣传的快捷方式,我是否需要考虑任何特殊问题,或者我可以将其视为任何其他文件并删除它?

【问题讨论】:

    标签: windows-installer advertised-shortcut


    【解决方案1】:

    就快捷方式而言,它只是一个可以删除的普通文件。

    不过,我会提醒您不要使用 MSIZAP - 它确实是不得已的手段,并且会留下很多信息、共享的 DLL 计数、注册表项、文件等。删除 Windows 安装程序后然后,您需要从注册表中删除与您的程序相关的任何信息。 SharedDLL 引用计数是最糟糕的事情,因为当您尝试使用新的 MSI 重新安装/卸载时,它们会搞砸。

    Rob 有一篇很好的帖子详细介绍了 the pitfalls of using MSIZAP 的一些内容。除非您准备手动搜索它留下的所有注册表信息,否则您不想使用它。

    【讨论】:

      【解决方案2】:

      AFAIK 广告的快捷方式负责进行设置。
      这些是特殊的 lnk 文件,它们指向带有 spicel 参数的安装程序,当它们被激活时将执行设置(您可以使用记事本或十六进制编辑器查看信息)。
      无论如何,MSI zap 应该已经删除了设置的所有痕迹。
      如果您执行 zap 然后按快捷方式,设置是否会运行?或者你得到一个错误?

      【讨论】:

      • 它显示“参数不正确”的错误,但是当我安装新版本后,它会尝试运行安装程序并显示一些错误(不记得它是什么atm)
      • 捷径在zapping后不起作用是有道理的,但是安装新版本后出现哪个错误?
      • 嗯,数字,现在无法重现了。我猜是另一个黑森虫
      • 我很确定切换和删除快捷方式已经足够好了(当然在给定的情况下)。
      猜你喜欢
      • 1970-01-01
      • 2012-02-29
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多