将Sqlite数据库文件重新嵌入到同一个可执行文件中

时间:2011-07-20 05:39:53

标签: c# .net winforms sqlite embedded-resource

我正在创建Win Form应用程序,我正在添加一个空的Sqlite数据库文件,其中包含表作为嵌入式数据源。在运行时,我将数据库文件提取到应用程序路径中,并将值插入该数据库文件的表中。 在再次关闭应用程序时,我必须将数据库文件更新或替换为可执行文件。 是否有可能,如果是这样的话。

2 个答案:

答案 0 :(得分:0)

为什么不将它存储在应用程序文件夹中?或者,如果您不想显示它,可能是用户的AppData?

答案 1 :(得分:0)

我不确定我是否正确理解了这个问题。如果你试图重新写入你正在运行的同一个exe,这是不可能的。 Windows会锁定正在使用的代码文件,以便它们无法更改。此外,它也是不可取的,代码和数据应该是分开的。

如果您正在尝试更新另一个可执行资源(当前未运行),我不知道如何以编程方式执行此操作(请参阅此主题以获取更多信息How do I replace embedded resources in a .NET assembly programmatically?)但如果您的程序可以访问到Visual Studio编译器工具(它可能没有)你可以反汇编和重新组装可执行文件。见这里:http://fortheloveofcode.wordpress.com/2007/09/24/change-resources-inside-assembly/