gpt4 book ai didi

c# - ClickOnce 在重新安装期间不替换 App_Data 文件

转载 作者:行者123 更新时间:2023-11-30 18:14:35 25 4
gpt4 key购买 nike

我注意到我的应用程序的 ClickOnce 部署发生了一个我不理解的行为:标记为数据文件的数据库文件 (Main.accdb) 未在 C:\Users\username\AppData\Roaming\中被替换重新安装或安装较新版本后的 AppName。

在项目属性 > 发布 > 我有的应用程序文件中:

  • 文件名 App_Data\Main.accdb
  • 发布状态 = 数据文件
  • 下载组​​ =(必填)
  • 哈希 = 包含

在我的文件属性中:

  • 构建操作 = 内容
  • 复制到输出目录 = 始终复制

当我第一次使用 ClickOnce 安装我的 WPF 应用程序时,该文件位于 C:\Users\username\AppData\Roaming\AppName 中。但是,如果我卸载了,删除了那个文件夹里的文件,重新安装是没有被替换的。事实上,从该文件夹中删除的任何内容都不会被重新安装所取代。

我为发布状态尝试了各种选项,但无论我选择哪个选项,都会发生相同的行为。我在 Visual Studio 2017 中将 WPF 与 C# 结合使用。

为什么会发生这种情况,我该如何做到这一点,以便在应用程序安装(或者更好的是启动)时文件始终存在?

最佳答案

事实证明,App_Data 文件夹的行为有所不同,可以通过使用 App_Data 以外的任何名称的文件夹来解决此问题。

除了一些有类似问题的用户的论坛帖子外,我无法在任何地方找到这个文档,但是,一旦我更改了文件夹名称,我就能够验证它是否完全按预期工作。

综上所述,Microsoft 似乎确实希望开发人员将 App_Data 用于数据库,因此这可能是一个异常(exception),对于大多数项目来说可能不是正确的方法。在我的例子中,它是一个桌面应用程序,需要在安装时将本地 Access 数据库部署到用户的计算机,并在重新安装和更新期间保持最新/替换。

关于c# - ClickOnce 在重新安装期间不替换 App_Data 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50122214/

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