我应该在 Visual Studio 项目的哪个位置复制 SQLite 数据库,是不是需要从那里复制它?

Posted

技术标签:

【中文标题】我应该在 Visual Studio 项目的哪个位置复制 SQLite 数据库,是不是需要从那里复制它?【英文标题】:Where in my Visual Studio project should I copy a SQLite database, and do I need to copy it from there?我应该在 Visual Studio 项目的哪个位置复制 SQLite 数据库,是否需要从那里复制它? 【发布时间】:2020-11-06 21:35:45 【问题描述】:

我将 SQL Server Express 数据库迁移到 SQLite(使用从 here 下载的实用程序)。

现在我想将此 SQLite 数据库添加到 Visual Studio 中的 C# 项目中。

我找不到确切的存储位置信息。似乎有一篇不错的文章here,关于这个过程,但是关于将数据库放在哪里有点模糊。它说:“第一步是将您的数据库复制到 Visual Studio 项目中,然后在“属性”窗口中,将“构建”操作设置为“内容”。”

那么数据库文件是否应该或必须放置在特定位置?

另外,我可以在从应用程序代码中查询数据库时将数据库留在那里,还是需要将其复制到用户的 ApplicationData.Current.LocalFolder?

那篇文章似乎至少强烈暗示了这一点,该文章显示了这样做的代码。

【问题讨论】:

【参考方案1】:

那么数据库文件是否应该或必须放置在特定位置?

您可以将其保存在项目的根目录中。如果你喜欢遵循特定的文件夹结构,你也可以这样做,但是对于你必须存储你的 sqllite db 文件的位置没有任何限制。

另外,我可以在从应用程序代码中查询数据库时将数据库留在那里,还是需要将其复制到用户的 ApplicationData.Current.LocalFolder? 那篇文章似乎至少强烈暗示了这一点,该文章显示了这样做的代码。

当您在 Build action 中将文件属性设置为 Content 时,该文件将被复制到您的输出目录,ReleaseDebug 目录,具体取决于是您当前的构建配置,ApplicationData.Current.LocalFolder 是指运行您的应用程序的文件夹,因此只需将Build action 设置为Content 即可工作。

【讨论】:

【参考方案2】:

按照 Dipen Shah 的说明,我右键单击项目,选择添加...> 现有项,将 SQLite 数据库添加到项目中,然后将数据库文件的 Build Action 属性设置为内容 - 再简单不过了!

这样做会将以下条目添加到我的 .csproj 文件中:

<ItemGroup>
    <None Remove="F4FDataSQLite_SingleTable.db" />
</ItemGroup>

<ItemGroup>
    <Content Include="F4FDataSQLite_SingleTable.db" />
</ItemGroup>

【讨论】:

以上是关于我应该在 Visual Studio 项目的哪个位置复制 SQLite 数据库,是不是需要从那里复制它?的主要内容,如果未能解决你的问题,请参考以下文章

我应该在 Visual Studio 项目的哪个位置复制 SQLite 数据库,是不是需要从那里复制它?

Visual Studio项目REST api

第一次使用 OpenGL:我应该如何配置 Visual Studio Express 2015 来构建和运行 OpenGL 项目?

我应该在 Visual Studio 下为 Linux 交叉开发吗

应将哪些 Visual Studio 2013 项目文件签入源代码管理?

多个 Web 项目,在 Visual Studio 中(几乎)布局相同