拥有一个使用Click-Once分发的smartclient应用程序,但还包括一个用于本地缓存的SQLite DB。
问题是,一旦应用程序发布,它似乎无法打开SQLite DB文件。已将DB文件作为安装过程的一部分包含在内......
有什么想法吗?
答案 0 :(得分:3)
当ClickOnce应用程序设置为“完全信任”时,在安装时它将提示用户授予完全信任。这意味着应用程序将在计算机上具有与运行应用程序的用户相同的权限(编辑注册,文件io等)。您在评论中提到应用程序设置为完全信任,因此看起来这不是安全问题。
您确定已部署所有所需的文件吗?我只想从图片中删除ClickOnce。查看部署中的所有文件,创建文件夹并将所有这些文件复制到其中,然后尝试运行它。它有用吗?我最初的猜测是,某些所需文件未包含在ClickOnce部署中。
答案 1 :(得分:1)
检查您的应用用于访问数据库的路径。虚拟化路径可能会导致Vista及以上版本出现这类问题。
然后检查数据库文件的读/写权限。
答案 2 :(得分:0)
您是否已将SQLite提供程序包含在程序包中?
答案 3 :(得分:0)
我遇到了同样的问题。我的解决方案是在Visual Studio项目中添加SQL.interop.DLL(x32和x64)(作为链接),以便ClickOne Deploiment在这个“包”中添加这些文件 看看这篇博文: http://webbercross.azurewebsites.net/ef7-sqlite-click-once-deployment-error/