首页 > 解决方案 > 为什么更新现有安装时 PDW 不复制某些文件?

问题描述

我有一个相当大的应用程序(~750k LOC),我使用打包和部署向导分发它。我完全理解迁移到 .NET 会很好(这不会发生 - 请参阅上面的代码大小),并且 PDW 存在严重缺陷。但是,在大多数情况下,我通过自定义 Setup1 应用程序、为 Setup 应用程序编写菜单驱动的包装器以及在静默模式下运行它,使它对我的最终用户运行良好。(请注意,我要描述的问题甚至在我开始使用静音模式之前就已经发生了。)

我遇到的问题是我的应用程序需要很多辅助文件,我已将它们添加到“包含文件”部分的 PDW 项目中。当用户进行全新安装(从头开始,或在卸载以前的安装之后)时,一切正常。但是,如果他们只是运行安装程序来更新现有安装,我更新的可执行文件和任何 OCX 都会被复制到以前的版本上,但我的辅助文件不会——我必须让用户手动删除它们,然后 Setup1 程序将按照应有的方式重新安装它们。

我检查了 Setup.lst 文件,所有文件都列在那里,并带有它们当前的日期戳。事实上,在我的“BuildAll.bat”文件中,我执行了相当于 Windows 的“触摸”(复制 /b“TheFile.dat”+,,)来强制日期戳是最新的。但是,如果文件存在于目标机器上,即使它较旧也不会被覆盖。没有错误报告,无论是可见的还是在 .LOG 文件中(如果使用静默选项,这是必需的)。

补充几点: 一些辅助文件本身就是 VB6 应用程序 - 只是 .exe 文件。如果它们比现有文件更新,它们确实会被正确复制除了是具有内部版本信息的文件之外,它们与其他辅助文件(例如媒体文件或基于文本的 .txt 或 .dat 文件)之间没有区别。

那么,发生了什么事,我该如何解决(除了转移到 Inno 或其他对我不起作用的解决方案......)?提前感谢您的帮助!~~ 标记成型

标签: vb6

解决方案


推荐阅读