区分卸载/安装和升级应用程序

所以,我有这个应用程序,我们正在制作更多的开发版本。

如果应用程序被用户(从添加/删除程序)卸载,那么我希望应用程序删除文件系统中包含与应用程序相关的信息的某个文件夹。

但是,如果应用程序升级(通过下载此应用程序的较新安装程序并安装它),那么我希望它保留该文件夹。

我(目前)的印象是,无法区分卸载/安装和只是将应用程序从一个版本更新到另一个版本,因为.NET部署项目将升级视为另一个卸载/安装过程,但此应该可以以某种方式。

感谢您花时间和我可能得到的任何答案。


安装程序有三个GUID代码,ProductCode,PackageCode和UpgradeCode,您可以使用它们来管理这些方案:UpgradeCode与应用程序ID类似,不应在版本之间更改; PackageCode标识您的设置的发布,并且ProductCode标识您的软件的发行版。 您可以通过增加ProductVersion值来更改ProductCode。

Windows使用ProductCode来查看应用程序是否已安装在系统上。 如果使用具有相同ProductCode和PackageCode的安装程序重新安装,则会得到一个修复/卸载选项。


这不是直接的答案,但是您是否考虑过使用第三方安装软件? 我们使用InnoSetup来分发.Net应用程序,我们发现它非常易于使用且非常灵活。 它当然可以处理你所描述的内容。


您是否尝试过使用ClickOnce部署? 它处理应用程序的所有安装和升级。 通过更改更新中包含的文件的发布状态,您可以控制文件是否被更新覆盖或保持不变。 当应用程序被卸载时,所有文件将被删除。

链接地址: http://www.djcxy.com/p/3447.html

上一篇: Differentiating between uninstalling/installing and upgrading an application

下一篇: Where to put common code for iPhone, CLLocationManager