C# 在更新ClickOnce应用程序时防止覆盖数据库

C# 在更新ClickOnce应用程序时防止覆盖数据库,c#,visual-studio,sqlite,clickonce,C#,Visual Studio,Sqlite,Clickonce,我完成了我的c#Click once应用程序,所以我发布了它。 它的问题是,我正在使用一个小的SQLite数据库,用于保存设置和许多其他小东西,每当我更新应用程序时,新的SQLite数据库都会覆盖这些设置和小东西 数据库中有如下设置:记住密码和用户名,还有一个计数器,用于计算应用程序启动的次数。所有这些都将丢失,用户将不得不再次填写用户名和密码,即使他选中复选框以记住,因为数据库将被覆盖 问题:如何防止SQLite数据库在我的“一次点击”应用程序中被覆盖?您应该拥有“模板”数据库,该数据库将始终

我完成了我的c#Click once应用程序,所以我发布了它。 它的问题是,我正在使用一个小的SQLite数据库,用于保存设置和许多其他小东西,每当我更新应用程序时,新的SQLite数据库都会覆盖这些设置和小东西

数据库中有如下设置:记住密码和用户名,还有一个计数器,用于计算应用程序启动的次数。所有这些都将丢失,用户将不得不再次填写用户名和密码,即使他选中复选框以记住,因为数据库将被覆盖

问题:如何防止SQLite数据库在我的“一次点击”应用程序中被覆盖?

您应该拥有“模板”数据库,该数据库将始终覆盖并使用安装新版本应用程序后不会覆盖的数据创建数据库

如果应用程序启动时不存在包含数据的数据库,则应创建该数据库。

您应拥有“模板”数据库,该数据库将始终覆盖,并使用安装新版本应用程序后不会覆盖的数据创建数据库


如果应用程序启动时不存在包含数据的数据库,则应创建该数据库。

我使用以下链接解决了我的问题:


本文介绍如何在AppData的roaming文件夹中创建数据库,在其中创建一个名为“您的公司名称”或“您的应用程序名称”的文件夹,并将数据库放入该文件夹。

我使用以下链接解决了我的问题:


本文介绍如何在AppData的roaming文件夹中创建数据库,在其中创建一个名为“您的公司名称”或“您的应用程序名称”的文件夹,并将数据库放入该文件夹。

Clickonce在客户端计算机中升级应用程序,以及它如何更新数据库?此数据库服务器位于何处?数据库位于项目文件夹中,它不在服务器上,因为它不需要。因此,我在我的项目中从VisualStudio更新数据库,然后按publish。这可能会有所帮助。Clickonce升级客户端计算机中的应用程序,它如何更新数据库?此数据库服务器位于何处?数据库位于项目文件夹中,它不在服务器上,因为它不需要。因此,我在我的项目中从VisualStudio更新数据库,然后按publish。这可能会有所帮助。数据库不存在时创建,因为应用程序会检查它是否存在是或否,但如果存在数据库,则会将其删除,因为Clickonce会删除所有内容并将新发布放置到位。通常,安装文件夹应该是静态的(即使它是AppData)。您可以使用MyDocuments或AppData的子文件夹作为DB的占位符。数据库不存在时会创建,因为应用程序会检查它是否存在是或否,但如果存在数据库,则会将其删除,因为Clickonce会删除所有内容并将新发布放置到位。通常,安装文件夹应该是静态的(即使是AppData)。您可以使用MyDocuments或AppData的子文件夹作为DB的占位符。