首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级安装可以替换文件吗?

升级安装可以替换文件吗?
EN

Stack Overflow用户
提问于 2011-04-26 17:32:35
回答 1查看 926关注 0票数 3

似乎升级安装不会用新版本替换文件,但他们实际上卸载了旧的安装包并安装了新的安装包。假设我已经安装了我的应用程序,它在安装目录中生成了一些文件。然后,用户获得新版本的产品并启动安装包。该程序包删除产品的旧版本(因为新的安装程序包已将“删除以前的版本”设置为true、更高的版本号和不同的产品代码)。由应用程序创建但不是由包创建的文件不会被删除,这很好。但是用户可以将新版本安装到不同的位置,然后应用程序将找不到旧的应用程序文件。如何处理它?编写一些自定义操作和条件,如果应用程序已经安装,则跳过文件夹选择屏幕?或者可能已经有一种内置的方法来升级指定目录中的旧安装文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-26 18:37:12

您的应用程序不应将其设置存储在程序文件中,它们应存储在CommonAppDataFolderAppDataFolderLocalAppDataFolder中。如果你使用这些文件夹中的一个来存储你的应用程序设置/数据,那么用户可以自由地将其安装到任何其他位置,并且应用程序仍然会看到它的设置/数据。

据我所知,升级的行为取决于您在安装序列中安排RemoveExistingProducts操作的位置。

编辑:由于您不能更改应用程序存储文件的位置,因此您必须手动跟踪安装位置。执行升级操作时,更新后的产品通常会安装到相同的位置(这可能需要更改向导用户界面)。

如果您想保留设置,即使手动重新安装,即用户卸载您的应用程序,然后将其再次安装到另一个位置,我看到的唯一选择是将安装位置存储在注册表中。如果注册表中不存在该值,则不应运行其他操作。如果存在带有上一次安装位置的值,则将其保存。然后将设置/数据从旧位置移动到新位置(通过向MoveFile表添加临时行)。最后,将新的安装位置保存到注册表中。

请注意,在Windows Vista及更高版本下,在Program Files中存储设置/文件可能无法按预期工作,尤其是在UAC打开的情况下;并且您的设置实际上可能存储在虚拟存储中,而不是Program Files中。更新你的应用程序比尝试移动文件要好得多。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5788450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档