问题描述
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" />
保存后,再次打包安装,问题解决!