【问题标题】:sqlite database with winforms deployment带有 winforms 部署的 sqlite 数据库
【发布时间】:2023-03-15 22:34:02
【问题描述】:

我对使用 C# winforms 应用程序部署 sqlite 数据库相当陌生。 我使用以下应用程序文件夹创建了一个安装项目,其中包含主输出(.exe 文件) 该程序将 System.Data.sqlite 作为其依赖项。

在常规项目中(未设置),数据库包含在bin->Debug->Appdata->Test.DB

 <connectionStrings>
    <clear />
  <add name="RConnString" connectionString="Data Source=App_Data\Test.db;Compress=True;Version=3"
      providerName="System.Data.Sqlite" />

  </connectionStrings>

对于安装:数据库及其相关依赖项将放在哪里(system.data.sqlite) 目前,该程序安装在 C:\Programfiles... 尚未包含数据库。

什么是发布这个 sqlite Db 的好地方。还有,我该怎么做。我把它放在安装项目的什么地方。我需要自定义安装吗?
我们有 Windows XP、Win 7 用户

【问题讨论】:

    标签: c# winforms sqlite deployment setup-project


    【解决方案1】:

    如果是每个用户的数据,理想的放置位置是在漫游配置文件位置下的目录中,通常是C:\Users\john\AppData\MyApplication 或其他东西。如果它是机器范围的数据(不是特定于用户的),那么它应该在C:\ProgramData\MyApplication 下。

    我不确定您使用的是什么类型的安装程序,但它应该有一种方法可以通用地指定这些位置(即“用户数据目录”或类似的东西)。

    想要放置数据库文件的位置与您的应用程序可执行文件位于相同的安装位置,除非您只是要从中读取。任何要写入的东西都需要放在上述两个位置之一。

    【讨论】:

    • 这对 Vista 和 Win 7 来说是正确的,但我认为 XP 没有 ProgramData 文件夹并且他们没有用户文件夹(虽然有一个等效文件夹)。
    • @kprobst:用户将使用 Db(写入它)。所以最好的地方是 C:\Users\john\AppData\MyApplication (根据你的建议)。我正在使用 .msi 安装程序。目前该程序安装在 C:\Program Files (x86)\Default Company Name\RSetup。我应该将此路径更改为 C:\Users\john\AppData\MyApplication.我可以写用户 AppData 文件夹吗?这对 Xp 和 7 都有效吗?抱歉,我想我需要更多解释
    • @Trisped 有标识符(通过CSIDL 枚举)应该提供正确的位置,无论操作系统版本如何。这就是使用 shell 获取路径的全部意义所在。
    • @user1580726 是的,但不要硬编码路径。确保使用安装程序的功能让它查询 shell 以获取正确的命名位置。我认为 VS 安装程序会这样做,大多数商业安装程序也应该这样做。
    猜你喜欢
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 2015-10-26
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 2011-08-12
    • 2015-10-24
    相关资源
    最近更新 更多