我注意到我不了解我的应用程序的ClickOnce部署所发生的行为:标记为数据文件的数据库文件(Main.accdb)未被C:\替换重新安装或安装较新版本后,用户\用户名\ AppData \ Roaming \ AppName。
在项目属性>发布>我有的应用程序文件:
在我拥有的文件属性中:
当我第一次使用ClickOnce 安装我的WPF应用程序时,该文件位于C:\ Users \ username \ AppData \ Roaming \ AppName中。但是,如果我卸载,删除该文件夹中的文件,并重新安装它不会被替换。实际上,从该文件夹中删除的任何内容都不会被重新安装替换。
我为发布状态尝试了各种选项,但无论选择哪个选项,都会发生相同的行为。我在Visual Studio 2017中使用WPF和C#。
为什么会发生这种情况?如何在应用程序安装(甚至更好,启动)时始终存在文件?
答案 0 :(得分:0)
事实证明,App_Data文件夹的行为不同,可以通过使用除App_Data以外的任何名称的文件夹来解决该问题。
除了少数有类似问题的用户的论坛帖子外,我在任何地方都找不到此文档,但是,一旦更改了文件夹名称,我就能够验证它是否按预期工作。
话虽如此,微软似乎确实希望开发人员对数据库使用App_Data,因此这也许是常规的例外,对于大多数项目而言可能不是正确的方法。就我而言,它是一个桌面应用程序,需要在安装时将本地Access数据库部署到用户的计算机上,并使其保持最新状态/在重新安装和更新过程中对其进行替换。