2010-10-06 284 views
4

我用纯的InstallScript安装InstallShield中临2010删除旧文件版本安装

第三方jar文件的工作已经被替换为我们的软件的更新版本。当运行升级安装时,将安装新的jar,但旧的jar也会保留。坏的事情随之而来。

如何让InstallShield更新文件夹的内容,并删除当前版本中未包含的位置中的任何其他文件?

我已经看过组件 - >覆盖选项,但是这似乎只适用于“当安装程序遇到与正在安装的名称相同的名称的现有文件时”。

此外,我意识到我可以添加一些脚本来删除有问题的文件,但我需要一个可扩展的解决方案。随着时间的推移将会有其他文件被替换,并且我宁愿不必每次都发生这种情况时手动向安装程序添加修补程序。

回答

1

您可以不修改构建JAR文件的名称吗?

我不知道具有robocopy/mirror样式副本的InstallScript。你必须编写这个行为的脚本,我可以看到它不能很快结束。

+0

虽然我预计这会奏效,但它不是很理想。要记住我们正在运行activemq 5.4.1,但这个jar仍然被命名为activemq-all-5.3.1.jar会非常烦人。如果仅仅删除了某些东西(而不是替换为不同名称的版本),这也不起作用。 – sjohnston 2010-10-06 19:43:52

+1

为什么不把它称为activemq.jar?在Win32的世界中,我通常不会有foo1.exe后跟foo2.exe。为了解决第二个问题,这就是为什么我们使用Windows Installer而不是纯InstallScript项目的原因,具有声明性地弃用组件并让安装程序自动处理其删除的功能使事情变得更容易。命令性/程序性脚本太脆弱且耗时。 – 2010-10-06 20:51:39