ClickOnce 在重新安装期间未替换 App_Data 个文件

ClickOnce not replacing App_Data files during re-install

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

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

在我的文件属性中:

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

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

为什么会发生这种情况,我怎样才能使该文件在应用程序安装(或启动时更好)时始终存在?

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

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

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