请问我们如何在winform应用程序中嵌入ms access db,以便它可以轻松地在只有一个文件 .EXE 的其他机器上运行。我已经干了很多但仍无法为它找到合适的解决方案。谢谢。
答案 0 :(得分:2)
假设您使用的是MDB,那么(32位)数据库引擎(JET)是Windows的一部分。因此,应该没有设置要求。如果只读取数据库而不写入数据库,则可以将其作为资源添加到EXE中,当应用程序启动时,将资源提取到TEMP目录中,或者如果它很大并且您不介意离开缓存到本地应用程序数据(CSIDL_LOCAL_APPDATA)下的子文件夹中。如果您执行后者,那么下次应用程序启动时,它可以检查是否已存在有效的提取MDB,如果存在则使用该MDB。如果要编写数据库,您可以执行类似的操作,但仅限于本地存储,在这种情况下,链接的MDB将用作“模板”数据库。
如果您使用的是Delphi或C ++,我还建议将SQLite作为JET的替代方案进行调查,不过因为它是C#我认为('c'标签有点令人困惑)然后你将无法静态链接SQLite代码,这不符合独立的EXE要求。