gpt4 book ai didi

clickonce - 在 ClickOnce 更新之间保留用户创建的文件?

转载 作者:行者123 更新时间:2023-12-03 08:18:52 31 4
gpt4 key购买 nike

我有一个 ClickOnce 应用程序,在它安装到客户端机器上后,它第一次启动时会创建文件夹 X、Y 和 Z。

现在,当用户开始使用应用程序时,他/她会在这些文件夹中创建各种文件。稍后应用程序的新版本可用,他/她将应用程序从版本 1.0.0.0 更新到 1.0.0.1。

最终结果是文件夹 X、Y 和 Z 被重新创建(并且是空的)并且用户看不到他之前创建的文件。

我们如何传播版本中的文件并保证在第一次安装应用程序时自动创建文件夹 X、Y 和 Z?

最佳答案

我是否正确地假设这是在应用程序的数据目录中创建的文件夹和文件的具体问题?

我可以想到两种解决方案:

  1. 更新后,DataDirectory 的内容被复制到新版本的 DataDirectory 中,并放置在名为 .pre 的子文件夹中。您可以使用 ApplicationDeployment.CurrentDeployment.IsFirstRun 以编程方式检查是否刚刚下载了更新,然后编写您自己的迁移代码以将适当的文件夹从 .pre 移动到父目录。

  2. 一个不同的答案,也是我们使用的一个,是完全绕过 ClickOnce DataDirectory 并在用户的应用程序数据目录中设置您自己的文件夹(记住使用该文件夹的 .NET 别名)。这种方法的缺点是,如果您从“添加/删除程序”中卸载应用程序,文件夹将不会自动卸载。几个好处是:

    • 这些文件夹在处理损坏的 ClickOnce 缓存时有时需要卸载/重新安装时仍然存在(比几年前频率低,但仍然是偶尔出现的问题)。

    • 文件夹跟随使用漫游配置文件的用户(我们的经验是在漫游配置文件情况下,ClickOnce 目录未配置为漫游)。

    • 如果由于这些数据文件中的问题而必须通过电话或电子邮件提供 IT 支持,则可以更轻松地找到这些文件夹。即使是 IT 人员也常常难以找到 ClickOnce 数据目录(它有一个隐藏的父目录),但大多数人可以轻松地在应用程序数据中找到您公司的目录。 YMMV,如果您出于安全原因需要混淆这些文件的位置。

关于clickonce - 在 ClickOnce 更新之间保留用户创建的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1272114/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com