【问题标题】:How to disable recovering missed files for Visual Studio Installer Projects?如何禁用恢复 Visual Studio 安装程序项目的丢失文件?
【发布时间】:2019-08-22 09:46:01
【问题描述】:

我创建了一个使用来自暴雪 API 服务的图像的程序。 我为该程序创建了一个安装程序,并将图像放在“用户的应用程序数据文件夹”中。 安装非常好,图片解压到“AppData / Roaming / MyApp”文件夹中。

需要删除图像,程序将从暴雪服务本身下载它们。 但是当您删除已安装的文件时,安装程​​序开始恢复文件,程序无法从暴雪服务下载新数据。

是否可以禁用文件夹“AppData / Roaming / MyApp”的恢复? 或者你知道如何解决它?

为了创建安装程序,我使用“Microsoft Visual Studio 安装程序项目”https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects

请帮帮我。

【问题讨论】:

    标签: c# visual-studio-2017 windows-installer installation


    【解决方案1】:

    下载文件:您可以安装您的服务,然后从服务器下载文件,而不是通过 MSI 安装它们吗?这 将使它们与任何 MSI 自我修复干扰分离。 MSI 对这种情况下的文件一无所知。

    自我修复:Windows Installer (MSI) 自我修复是一件非常复杂的事情:Why does the MSI installer reconfigure if I delete a file?。这里有一个更详细的文章:How do I avoid triggering MSI self-repair with my WiX / MSI package? 我真的不建议过多研究它:这个概念很简单(将安装的文件保持在正确的版本中),但产生的问题很复杂且难以解决。

    空白 GUID:有一种方法可以通过具有空白 GUID 的组件安装文件。然后它们被简单地安装并且不再检查。这应该可以消除自我修复问题。

    只读模板:最后,您可以将一堆模板文件安装到每台机器的路径(例如在程序文件下),然后将它们复制到位对于每个用户。可以非常有效。然后你可以覆盖它们并随意删除。


    建议:我会安装我的服务并按需从服务器下载文件。这应该让您从比设置代码(自定义操作)更容易调试的代码中完全控制整个过程。

    【讨论】:

    • 感谢您的回答!作为一个选项,我可以创建一个没有图像的安装程序,当启动程序时,它会从暴雪服务下载所有内容。只是加载了一段时间,我不想让用户等待。
    • 我想您可以尝试建议的其他方法来验证提供最佳用户体验的方法。我的看法是下载越来越快?能够在事物的服务器端更新事物并看到更改按需复制有什么好处?我开发的一款软件在启动时启动下载并在后台运行,允许用户在下载时使用该工具。另一种方法是从服务器按需下载文件,否则将它们完全保存在服务器上?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多