【发布时间】:2020-03-25 19:58:36
【问题描述】:
我正在处理一个旧的 Visual Studio 2008 项目,该项目有一个安装项目。我已将所有内容升级到 VS2019,对代码进行了更改,增加了版本,添加了一些文件并进行了设置。 全新安装运行良好。
当我第一次使用 VS2008 中的安装程序安装旧版本,然后运行新安装程序来升级它时,事情变得很奇怪。 新设置将安装所有新文件,并在结束之前删除所有被覆盖的文件。只会保留不存在的文件。
例如,旧设置将这些文件放在程序文件夹中:
- program.exe v1.0
- lib.dll v1.0
然后新的安装程序将安装这些文件,覆盖旧的:
- program.exe v2.0
- lib.dll v2.0
- other.dll v1.0
- info.txt v1.0
就在结束安装并启用[关闭]按钮之前,文件夹内容更改为:
- other.dll v1.0
- info.txt v1.0
我已经在多台计算机(Win 10 到 Win 7)上检查了这一点,并使用了 filemon 工具来确保实际安装并删除了新文件。事件日志仅显示成功安装。 再次启动新设置并选择“修复”将起作用并保留文件。所以这是一种解决方法,但对许多用户来说不是最好的解决方法。
使用两个不同版本的 VS2019 设置构建的测试可以正常工作。旧的 VS2008 设置也可以正常工作。因此,将带有 VS2008 的设置版本升级为带有 VS2019 的设置版本时,这似乎是一个问题。
有人知道如何解决这个问题,以便安装不会删除文件吗?
【问题讨论】:
标签: installation windows-installer setup-project visual-studio-setup-proje