【问题标题】:Visual Studio Setup Project deletes just upgraded filesVisual Studio 安装项目删除刚刚升级的文件
【发布时间】: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


    【解决方案1】:

    好的,我看到了一些看起来相同的 VS2010 问题。解决方案似乎是在构建后手动编辑 msi 文件。远非最佳,我认为它已由 MS 在 VS2019 中修复。

    原来他们没有“修复”它,但允许使用向后兼容的 ID。再次浏览选项面板时,我突然看到了这个选项。改为真:

    这确实解决了我的问题。

    更多信息in this answer

    如果有人认为此问题重复,则可以删除此问题。当您认为有帮助时,我会在此处接受我自己的答案以存档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-29
      • 2018-11-18
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多