2009-09-02 90 views
3

有一个使用Click-Once分发的smartclient应用程序,但也包含用于本地缓存的SQLite数据库。.NET SQLite和点击一次部署

问题是,一旦应用程序发布,它似乎无法打开SQLite数据库文件。已包括DB文件作为安装过程的一部分...

有什么想法?

+0

你有例外吗? – codeConcussion 2009-09-02 13:34:42

+0

System.Data.SQLite.SQLiteException:无法打开数据库文件 – 2009-09-02 14:00:09

+1

您的部署请求“完全信任”吗? – codeConcussion 2009-09-02 14:17:01

回答

3

当ClickOnce应用程序设置为“完全信任”时,安装时将提示用户授予完全信任。这意味着应用程序在运行应用程序的用户(在编辑注册,文件io等)上将具有与计算机相同的所有权限。您在评论中提到该应用设置为完全信任,所以看起来这不是安全问题。

您是否确定全部必要的文件正在部署?我只是从图片中删除ClickOnce。查看部署中的所有文件,创建一个文件夹并将所有这些文件复制到该文件夹​​中,然后尝试运行它。它工作吗?我最初的猜测是,某些所需的文件未包含在ClickOnce部署中。

0

您是否在包中包含了SQLite提供程序?

+0

是的,它只是无法打开数据库文件。调试时工作正常,这使我可能是一件安全的事情? – 2009-09-02 12:00:35

1

检查您的应用程序用于访问数据库的路径。虚拟化路径可能会导致Vista和以上的这些问题。

然后检查数据库文件的读/写权限。