如何使用SQLite数据库为C#应用程序发布/创建安装程序?

时间:2018-08-13 03:02:42

标签: c# database winforms sqlite installer

我有一个使用Visual Studio C#编写的简单WinForms应用程序,其中包括SQLite数据库。 数据库的“构建操作”属性设置为“内容”,“复制到输出目录”设置为“如果更新则复制”。 该应用程序已准备好发布。我想安装一个。最好的方法是什么? 我预计会有一些问题。我应该在哪里保存数据库文件?如果将其保存到Program Files文件夹中,则数据库将变为只读。.我应该在哪里保存它,应该怎么做?

1 个答案:

答案 0 :(得分:0)

我将您的问题视为:“在安装和使用应用程序期间在哪里存储可写文件?”

有2个特殊的地方:

  1. ApplicationData 特殊文件夹。当前用户可以访问此文件夹,并且该文件夹实际上位于 C:\ Users \\ AppData \ Roaming (Win7)中。此路径存储在%APPDATA%环境变量中,可以这样使用:

    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
    

    您可以安全地将文件存储在以下文件夹结构中:%APPDATA%\YourCompanyName\YourAppName\

  2. CommonApplicationData 特殊文件夹。几乎与上述相同,除了 all 用户可以访问并且它实际上位于__(Win7)中。此路径存储在%ALLUSERSPROFILE%环境变量中,可以这样使用:

    Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData));
    

    像以前一样,您可以安全地将文件存储在以下文件夹结构中:%ALLUSERSPROFILE%\YourCompanyName\YourAppName\

根据您的情况,在这里如何获取db文件路径:

var appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
var dbPath = Path.Combine(appDataPath, "YourCompanyName\YourAppName", "your_db_name.sqlite3");

真正的区别是:此数据库是否对 all 个Windows用户通用,或者每个用户应具有自己的数据库。