1

我用 IzPack 创建了一个安装程序。一切正常。现在我想知道,是否有一种好方法可以创建一个安装程序,如果它已经存在,它将负责更新应用程序?

我再次测试运行安装程序,但他无法识别应用程序已安装。

4

2 回答 2

1

我使用 IzPack 进行安装和更新。IzPack 本身并不与任何包装系统绑定,因此 IzPack 无法最终知道是否已安装某些东西。您可能会尝试与注册表或您在安装时创建的某些特定文件进行交互,但这仍然很混乱(无论如何对我来说)。

然而,IzPack 确实会在覆盖之前检查文件是否已经存在,因此如果您正在运行更新,那么一个示例是您希望更新二进制文件但不理会用户配置,因此在 packs 元素中执行以下操作:

<packs>
    <pack name="CorePack" required="yes" preselected="yes">
        <description>The core of the app.</description>
        <file src="bin/binaryapp" targetdir="$INSTALL_PATH/bin"
            override="true">
            <os family="unix" />
        </file>
        <file src="etc/config.conf" targetdir="/etc/appdir">
             <os family="unix" />
        </file>
    </pack>
</packs>

您会看到二进制文件有 override="true" 而配置没有(默认情况下 override=false)。二进制被更新,配置没有。

杰夫

于 2012-02-17T04:47:42.297 回答
0

CheckedHelloPanel 将完成您的工作,至少对于 Windows。如果您尝试重新安装,它会向注册表写入一些内容并检查它。

于 2013-08-14T14:02:35.913 回答