問題描述
winform在開發電腦上正常,但打包後放在其他機子,安裝後只能讀不能寫,剛懷懷疑是dll 的問題,System.Data.SQLLite.dll換32位的,問題依舊。
使用SQLLite工具 單獨打開 SQLLite數據庫文件driver.db ,發現也是隻能讀不能寫,會報錯"Unable to open database file"
將 driver.db 文件,安全權限加大,全勾上如下圖,
再次使用 SQLLite數據庫文件driver.db,測試能不能寫,發現問題依舊
再將數據庫文件driver.db 所在目錄 同樣加大權限,再測試,發現可以了,所以問題是權限問題,接下來就是解決打包的設置了
(PS:如果不將程序安裝的 c 盤 是沒有上述問題的,所以接下來 要麼要求客戶固定安裝在非C盤目錄,要麼解決權限問題)
解決辦法:
在工程中找到app.manifest,將
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
修改爲
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
保存後,再次打包安裝,問題解決!