2017-02-27 198 views
0

有一個項目使用sqlite數據庫文件。它一切正常,直到我使用Visual Studio安裝程序創建安裝文件。我知道UAC限制,所以我創建了自定義文件夾[CommonAppDataFolder] [Manufacturer] [ProductName]。 (C:\ ProgramData \ MyCompany \ MyProduct) 安裝程序文件創建文件夾並將DB文件放在那裏,但程序崩潰,異常「嘗試寫入只讀數據庫」。 當我通過Visual Studio Installer添加相同的DB文件並將其放到C:\ ProgramData \ MyCompany \ MyProduct中時,最有趣的東西就開始了。它應該基本上是相同的文件,但是當我手動添加它時 - 一切正常。所以我相信問題出在Visual Studio安裝程序上,它會以某種方式混淆數據庫權限。 你能否告訴我我應該在哪裏挖掘才能修復這個問題? 在此先感謝。SQLite數據庫在安裝後變爲只讀

P.S.我正在使用Windows 7,SP1

+0

確實沒有SQLite數據庫權限,很可能數據庫標記爲只讀,或者只讀在文件系統上,或者在Windows中訪問數據庫的用戶不具有寫入數據庫路徑的權限。 –

回答

1

我也有這個問題!

問題不在於該文件設置爲只讀,而是該權限未設置爲訪問該文件。

我發現我需要做的就是按照步驟以下線程設置自定義操作: How to give Read/Write permissions to a Folder during installation using .NET

然而而非文件夾設置權限,設置它們的源碼文件本身。 這很簡單,你只需設置File.SetAccessControls而不是目錄。