首页 > 解决方案 > 如何避免在更新 C# WPF 应用程序期间替换 SQLite-db

问题描述

我让我的应用程序(带有 SQLite-db 的 wpf)使用 Squirrel 工作。但是当我部署一个新版本时,db-file 被一个空的 db 替换。

我试图删除最新 nupkg 中的 db 文件,希望更新将保留现有的 db 文件。但这只会导致应用程序在运行时失败,因为现有数据库已被自动更新删除。

对应用程序所做的所有其他更改均已更新并正常工作。

我在 youtube 上关注了本教程:https ://youtu.be/W8Qu4qMJyh4

我希望应用程序 v. 1.0 中存储在 SQLite-db 中的数据在应用程序 v. 2.0 中仍然可用。

标签: c#wpfsqlitesquirrel.windows

解决方案


我假设您的 db 文件与您的应用程序文件(.exe、.dll 等)保存在同一目录中。如果是这种情况,那么您应该将其保存在不同的目录中。根据设计,Squirrel 会为每次更新创建一个新的安装目录

从 docs .. 注意MyApp.exe每个版本app-1.0.0app-1.0.1. db.sqlite所以如果你把它放在你的应用程序目录下,你最终会得到相同的场景。

\%LocalAppData%\MyApp
   \packages
      MyApp-1.0.0.nupkg
      MyApp-1.0.1-delta.nupkg
      MyApp-1.0.1.nupkg   
   \app-1.0.0
      MyApp.exe
   \app-1.0.1
      MyApp.exe

推荐阅读