You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP中如何将Microsoft.Data.SQLite连接字符串指向共享应用数据文件夹?

实现UWP应用共享SQLite数据库的方案

要让两个UWP应用共享同一个SQLite数据库,核心是把数据库放到共享应用数据文件夹里,不过有个前提:两个应用必须属于同一个发布者(比如用同一个数字证书签名,开发环境下Visual Studio默认会用同一个开发者证书,只要你是在同一个开发环境下构建两个应用就行),否则无法访问这个共享文件夹。

下面是具体的实现步骤:

1. 获取共享本地文件夹的路径

UWP提供了ApplicationData.Current.SharedLocalFolder来指向共享应用数据文件夹,这个路径是所有同发布者的应用都能访问的。不过第一次访问时这个文件夹可能不存在,所以需要先判断并创建:

Windows.Storage.StorageFolder sharedFolder = ApplicationData.Current.SharedLocalFolder;
if (sharedFolder == null)
{
    // 如果文件夹不存在,异步创建它
    sharedFolder = await ApplicationData.Current.CreateSharedLocalFolderAsync();
}

2. 构建完整的数据库连接路径

把数据库文件名和共享文件夹路径拼接起来,得到数据库的绝对路径:

string dbFullPath = System.IO.Path.Combine(sharedFolder.Path, "data.db");

3. 配置SQLite连接字符串

把这个绝对路径放到SQLite的连接字符串中,替换原来的相对路径写法:

using Microsoft.Data.Sqlite;

// 创建连接
SqliteConnection dbConnection = new SqliteConnection($"Filename={dbFullPath}");
// 打开连接(后续操作记得用using或者手动释放资源)
dbConnection.Open();

关键注意事项

  • 发布者一致性:两个应用必须使用同一个证书签名,否则无法访问SharedLocalFolder。开发阶段只要用同一个Visual Studio环境构建,默认会用同一个开发者证书,所以没问题;发布时要确保两个应用用相同的证书打包。
  • 文件夹权限:SharedLocalFolder的权限是同发布者应用共享,其他应用无法访问,所以不用担心数据泄露。
  • 异步创建文件夹:因为CreateSharedLocalFolderAsync是异步方法,所以要确保在异步上下文中调用(比如在async方法里)。

内容的提问来源于stack exchange,提问作者user8977483

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:30:37