我根据在这里找到的代码创建了一个安装程序。如果存在该应用程序的先前版本,我希望安装程序在安装新版本之前将其删除。
如果是全新安装,则一切顺利。
如果是升级,就会发生奇怪的事情。正如预期的那样,旧版本被删除,注册表更改,快捷方式放置在桌面上。 奇怪的是,安装程序完成时,应用程序文件夹中不存在主文件。
升级后启动时,会弹出一个小的安装程序消息框,并指出"请稍候,等待 Windows 配置 - 应用程序名称-.."。 在此快速消息之后,该文件应存在于应用程序文件夹中,并且应用程序将启动。
不过,在发布之前,它不存在。我什至在启动应用程序之前尝试重新启动,看看如果文件卡在某种缓存中,这是否会放置文件。
有人见过这种行为吗? 这有点像这个任务,但它发生在每次升级时。
奇怪的是,安装程序完成时,应用程序文件夹中不存在主文件。
如果组件管理不正确,这是 Windows 安装程序升级的常见问题。如果您从控制面板启动安装程序进入维护模式并进行"修复",您通常会看到丢失的文件会重新出现。在这种情况下,Windows 会在您启动应用程序时自动修复该应用程序。
对我头顶的一些可能的解释:
-
新版本的安装程序将此文件安装在具有新 GUID 的组件中。这会导致问题,因为组件 GUID 应保持稳定。
-
安装程序为每个组件安装多个文件。这会导致问题,因为是否应安装组件由键路径确定,并且只有一个文件可以作为键路径。坚持每个组件一个文件。
-
该文件的"新版本"实际上具有较低的版本号。这样的"升级"无法正常工作。