【问题标题】:SQLite database becomes read only after setupSQLite 数据库在设置后变为只读
【发布时间】:2017-07-18 07:37:49
【问题描述】:

有一个项目使用 sqlite db 文件。在我使用 Visual Studio 安装程序制作安装文件之前,一切正常。我知道 UAC 的限制,所以我创建了自定义文件夹 [CommonAppDataFolder][Manufacturer][ProductName]。 (C:\ProgramData\MyCompany\MyProduct) 安装程序文件创建文件夹并将数据库文件放在那里,但是,程序崩溃并出现异常“尝试写入只读数据库”。 当我将刚刚通过 Visual Studio 安装程序添加的同一个数据库文件放入 C:\ProgramData\MyCompany\MyProduct 时,最有趣的事情就开始了。它本质上应该是相同的文件,但是当我手动添加它时 - 一切正常。所以我认为问题出在 Visual Studio 安装程序上,它以某种方式弄乱了数据库权限。 你能告诉我我应该在哪里挖才能解决这个问题吗? 提前致谢。

附:我使用的是 Windows 7,SP1

【问题讨论】:

  • 确实没有 SQLite DB 权限,很可能 DB 被标记为只读,或者在文件系统上是只读的,或者在 windows 中访问 DB 的用户没有对 db 路径的写入权限。

标签: c# windows sqlite


【解决方案1】:

我也有这个问题!

问题不在于文件被设置为只读,而是没有设置访问文件的权限。

我发现我需要做的是按照以下线程中的步骤设置自定义操作: How to give Read/Write permissions to a Folder during installation using .NET

但是,您不是为文件夹设置权限,而是为 sqlite 文件本身设置它们。 这很简单,您只需设置 File.SetAccessControls 而不是 Directory。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-18
    • 2018-10-27
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多