我应该在 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 时,该文件将被复制到您的输出目录,Release
或 Debug
目录,具体取决于是您当前的构建配置,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 数据库,是不是需要从那里复制它?
第一次使用 OpenGL:我应该如何配置 Visual Studio Express 2015 来构建和运行 OpenGL 项目?
我应该在 Visual Studio 下为 Linux 交叉开发吗