我们有一个用 Visual Studio 2005 Installer 编写的安装程序解决方案;调用 C# 自定义操作,我们遇到了一个已知问题,关于升级时运行的是旧安装代码而不是新代码,因为 Windows 正在运行自定义操作 dll 的缓存版本。我们知道这一点,虽然还没有欣喜若狂 - 我们已经继续前进。
当我们发布新版本的安装程序并且用户运行它时,我们现在希望它检查是否安装了更早的版本——如果有的话;我们想显示一条消息,告诉他们必须通过添加/删除程序删除旧版本。我们知道如果他们先手动卸载再安装,那么一切都很好而且花花公子——但是我们通过文档告诉用户多少次并不重要;这是他们必须做的 - 他们仍然会尝试运行新的安装程序,而不先删除旧版本。
因此,我们想发布一条消息,从而迫使他们按照他们所说的去做!!我见过一些安装程序这样做(当然不确定使用什么安装程序包来创建这些)。我们只有 VS 2005,当然还有 orca!!
干杯,
克里斯。
最佳答案
这可以通过自定义启动条件来完成:
- 创建一个 search确定是否安装了旧版本(您可以搜索 component 、 registry entry 或 file )
- 使用搜索属性作为 custom launch condition
例如,如果搜索属性为 OLD_VERSION,则启动条件可能如下所示:
条件:NOT OLD_VERSION
描述:发现了一个旧版本。请使用控制面板中的“程序和功能”卸载它。
当 OLD_VERSION 属性设置为一个值(发现旧版本)时,此启动条件将显示消息并停止安装过程。
关于visual-studio-2005 - Windows Installer - 强制用户通过添加删除?删除程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5851915/