在单独的文件夹中安装 SQL Server CE 数据库 [Windows Mobile 6 Smart device ap]
Posted
技术标签:
【中文标题】在单独的文件夹中安装 SQL Server CE 数据库 [Windows Mobile 6 Smart device ap]【英文标题】:Install SQL Server CE database in separate folder [Windows Mobile 6 Smart device ap] 【发布时间】:2011-10-31 06:38:25 【问题描述】:将 SQL Server CE 数据库安装在单独的文件夹中,并将应用程序安装在其他文件夹中。从设备卸载应用程序时,数据库不会删除。在同一台设备上重新安装应用程序时,检查其中是否存在数据库[我们在第一次安装时保存的位置],如果不存在,则保存在所有智能设备的公共文件夹中[如\Program Files\
],否则使用现有数据库。
如何使用 C#、Windows Mobile 6 来做到这一点?????
【问题讨论】:
你用什么安装?出租车向导? 我创建了一个 CAB 项目,添加了主要输出和所有必需的依赖项。我可以指定要在应用程序之外安装的数据库文件[并且必须需要该数据库文件路径才能与应用程序连接]。?卸载时,将数据库文件保留在设备中。重新安装时,如果该路径中存在数据库文件,则保留该数据库文件而不是新文件。并与该文件一起使用。 【参考方案1】:阅读您的评论后,我建议类似于以下内容:
当您的应用程序启动时,让它检查您的数据库是否存在于您需要的路径(或在 INI 文件中指定的路径)
如果找不到数据库,请询问用户是否应该使用默认数据库(或者,如果他们别无选择,则直接复制它)。
删除应用程序后,该数据库将保留。
当您的应用程序重新安装时,它可以使用剩下的数据库。
例子:
namespace DBTest1
public partial class Form1 : Form
const readonly string MYDATABASE = "\\Application Data\\DBTest1\\sqlce.db";
private void Form1()
InitializeComponent();
CreateIfNotThere(DBTest1.Properties.Resources.sqlcedb, MYDATABASE);
void CreateIfNotThere(object data, string filename)
if (String.IsNullOrEmpty(filename))
filename = string.Format(@"012",
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
Path.DirectorySeparatorChar, "sqlCe.db");
if (data != null)
byte[] array = (byte[])data;
FileInfo file = new FileInfo(filename);
if (!file.Exists)
using (FileStream fs = file.Create())
fs.Write(array, 0, array.Length);
// other code
如果您想编写自定义 CABWIZ 步骤,How to create the inf file for a smart device cab project from command line? 线程中有一篇很好的文章。
【讨论】:
另一条带有有用链接的评论:mobilepractices.com/2008/10/…以上是关于在单独的文件夹中安装 SQL Server CE 数据库 [Windows Mobile 6 Smart device ap]的主要内容,如果未能解决你的问题,请参考以下文章
在Windows Server2016中安装SQL Server2016(转)
在 Windows 11 中安装 SQL Server 2019 时出错