有一个项目使用sqlite db文件。一切正常,直到我使用Visual Studio安装程序创建安装文件。我知道UAC限制所以我创建了自定义文件夹[CommonAppDataFolder] [制造商] [ProductName]。 (C:\ ProgramData \ MyCompany的\ myProduct的) 安装文件创建文件夹并将DB文件放在那里,但程序崩溃时出现“尝试编写只读数据库”的异常。 当我使用我刚刚通过Visual Studio Installer添加的相同数据库文件并将其放到C:\ ProgramData \ MyCompany \ MyProduct时,最有趣的东西就开始了。它本质上应该是同一个文件,但是当我手动添加它时 - 一切正常。所以我认为问题出在Visual Studio Installer上,它会以某种方式混淆数据库权限。 你能告诉我在哪里可以挖掘以便修复它吗? 提前谢谢。
P.S。我正在使用Windows 7,SP1
答案 0 :(得分:1)
我也有这个问题!
问题不在于文件是否设置为只读,而是权限未设置为访问文件。
我发现我需要做的是按照以下线程中的步骤设置自定义操作: How to give Read/Write permissions to a Folder during installation using .NET
但是,不是为文件夹设置权限,而是为sqlite文件本身设置它们。
这非常简单,您只需设置File.SetAccessControls
而不是目录。