我正在尝试运行我制作的程序(通过高级安装程序创建安装程序),但它一直说无法打开数据库(sqlite)文件。我检查了路径,我认为它们是匹配的,因为它在 Visual Studio 中运行得很好。App.config 连接字符串是:
<connectionStrings>
<add name="db" connectionString="Data Source=qbc-members.sqlite;Version=3;" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
这是项目目录内位置的屏幕截图:
这是实际的异常消息:
正如我所说,在 Visual Studio 中调试时它会按预期运行。当我检查程序的安装位置(C:\Program Files (x86)\user\qbc)时,它显示目录内的 sqlite 数据库文件以及实际的 .exe 文件。所以我真的很困惑为什么它找不到文件(当我尝试查找答案时,我认为相关的答案是它找不到文件)。这是实际程序目录(安装后)的屏幕截图。
如您所见,该文件就在那里。关于为什么抛出此异常有什么想法吗?
任何帮助,将不胜感激。
谢谢!
(抱歉,如果我的问题不清楚,请告诉我,如果需要,我会尝试添加更多信息)。
问题很可能是应用程序没有对C:\Program Files (x86)\user\qbc目录的写访问权限。这是必需的,因为 SQLite 在包含数据库文件的目录中创建一个锁定文件。
为启动应用程序的用户设置目录写入权限,问题应该可以解决。