ClickOnce在重新安装过程中未替换App_Data文件

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

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

  • 文件名App_Data \ Main.accdb

  • 发布状态=数据文件

  • 下载组=(必填)

  • 哈希=包含

在文件属性中,我有:

  • 建立动作=内容

  • 复制到输出目录=始终复制

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

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

为什么会发生这种情况,以及如何进行安装,以便在安装(或什至更好地启动)应用程序时文件始终存在?


互换的青春
浏览 124回答 1
1回答

慕容森

事实证明,App_Data文件夹的行为有所不同,可以通过使用除App_Data以外的任何名称的文件夹来解决此问题。除了少数有类似问题的用户的论坛帖子外,我在任何地方都找不到此文档,但是,一旦更改文件夹名称,我就能验证它是否按预期工作。话虽如此,微软似乎确实希望开发人员将App_Data用于数据库,因此这也许是常规的例外,对于大多数项目而言可能不是正确的方法。就我而言,它是一个桌面应用程序,需要在安装时将本地Access数据库部署到用户的计算机上,并使其保持最新状态/在重新安装和更新过程中对其进行替换。
打开App,查看更多内容
随时随地看视频慕课网APP