我试图制作一个可以对已安装软件进行更新的安装程序。这是我的信息:
<info>
<appname>MY</appname>
<appversion>APP</appversion>
<url>http://www.myapp.com</url>
<authors>
<author name="Dani" email="dani@myapp.com" />
</authors>
</info>
如您所见,我不将appversion与数字一起使用,因为我希望它始终保持相同。在从Windows添加/删除程序中,它显示为“我的APP”。
我使用变量处理版本,然后根据变量中的数字和安装文件所在文件夹中INI文件中的值更改安装流程。
<variables>
<variable name="InstallerFrame.logfilePath" value="Default" />
<variable name="APP_VERSION" value="6.0.1" />
<variable name="FIRST_INSTALL" value="true" />
<variable name="INSTALL_TYPE" value="choose" />
<variable name="SERVER_HOST" value="" />
</variables>
一切正常,直到执行更新然后尝试卸载。文件将被删除,但注册表项不会被删除,并且会一直显示在添加/删除版本中。
我从第一次安装中保留了uninstaller.jar,并在最后一次安装中使用了它,并且运行良好。如果我从上次安装中使用了uninstaller.java,它将无法正常工作,则不会删除注册表。