我的应用程序是在WPF中开发的。我使用隔离存储来保存一些应用程序数据。我使用click一次来部署这个应用程序。
我的问题是:在第一次运行我的应用程序时,我正在隔离存储中创建一个SQL Server CE数据库(.sdf
文件)。
using (SqlCeEngine engine = new SqlCeEngine(connectionString))
{
engine.CreateDatabase();
//Getting script from embedded resource file and split into individual queries
var queries = GetScript("TestDB").Split(new string[] { "GO" }, StringSplitOptions.RemoveEmptyEntries);
//run script on database one by one
using (SqlCeConnection sqlCeConnection = new SqlCeConnection(connectionString)) //my connection string path is of isolated storage directory
{
sqlCeConnection.Open();
foreach (var query in queries)
{
using (SqlCeCommand ceCommand = new SqlCeCommand(query, sqlCeConnection))
{
ceCommand.ExecuteNonQuery();
}
}
}
}
每当我想在客户端的隔离存储中迁移现有数据库中的某些更改时,我执行我在应用程序中添加的脚本作为嵌入资源。
using (SqlCeConnection sqlCeConnection = new SqlCeConnection(connectionString1))
{
sqlCeConnection.Open();
foreach (var query in queries)
{
using (SqlCeCommand ceCommand = new SqlCeCommand(query, sqlCeConnection))
{
ceCommand.ExecuteNonQuery();
}
}
}
我不知道为什么,但无论我在哪里发布新版本,只要它生成一个新的隔离存储位置。
即使我正在申请以下商店。
IsolatedStorageFile.GetUserStoreForApplication();
由于