c# - 如何避免在更新 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 中仍然可用。
解决方案
我假设您的 db 文件与您的应用程序文件(.exe、.dll 等)保存在同一目录中。如果是这种情况,那么您应该将其保存在不同的目录中。根据设计,Squirrel 会为每次更新创建一个新的安装目录。
从 docs .. 注意MyApp.exe
每个版本app-1.0.0
和app-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
推荐阅读
- r - 根据 R 中的行内容将数据框列拆分为 2
- gnome - Tigervnc访问centos7.8 gnome和GDM,应用开发显示黑屏
- python - 如何更改 Python 请求中的服务器名称指示?
- azure - 如何配置 webhook 活动?
- jenkins - 如何通过 Perforce 上的代码更改自动触发 Jenkins 作业
- javascript - 非线性颜色渐变向量 Javascript
- excel - 从 CSV 中提取值并将其放入 Excel 工作表中
- google-cloud-platform - 访问 Google Cloud Storage 触发事件“Pub/Sub”?
- postgresql - 使用查询 postgresql 在多列中搜索非空条件
- apache-spark - 基于另一个数据框的带有列条件的pyspark