C#应用程序部署:无法更新数据库,因为该数据库是只读的
本文关键字:数据库 因为 只读 更新 部署 应用程序 | 更新日期: 2023-09-27 17:59:46
实际上,我已经对之前提出的相同问题进行了stackoverflow回答。我知道这个问题是由于Program Files
文件夹中的权限受到限制而引起的。
我已经在https://stackoverflow.com/a/5714111/1182021,并且相同的解决方案遍布整个网络
If the MDB file is in your application path, then the default permissions would require elevation of rights to be able to write to the files -- I'd recommend moving the data to the ApplicationData shared folder, where end users will have write permissions by default
我的查询仅延续上述解决方案:
我已经将我的数据库路径全局更改为Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData))
,从那里我希望访问我的数据库,因为它将是一个公共访问文件夹(我浏览并得出了这个结论)
- 在部署应用程序时如何定义它?意味着当我部署
Setup and Deployment project
时,它会自动将我的数据库文件放在C:'Program Files'MyApplication'
中,因此我的应用程序无法访问ApplicationData
文件夹中的数据库 - 第二,这是唯一的办法吗?我不能将我的数据库放入我安装的目录中,并授予我的应用程序访问数据库的完全权限吗
我肯定在上读过TomTom
的答案https://stackoverflow.com/a/14611895/1182021但如果有任何技巧可以做到,并且是可行和可取的。
好吧,我不知道为什么我还没有得到任何答案。我真的在努力解决这个问题,最终找到了解决方案。
在您在项目中创建的数据库全局配置文件上,管理所有与数据库相关的工作,如添加、删除、更新和连接。对于本地数据库,定义一个LocalDbPath,如下所示:
public string LocalDBPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
然后在数据库连接中的任何位置使用相同的LocalDBPath
。
通过设置和部署部署项目时,请转到:
File System Editor
- 右键单击
File System on Target Machine
- 选择
Add Special Folder
- 选择
User's Application Data Folder
- 进入
User's Application Data Folder
->右键单击Add
->File
并选择文件,即可添加数据库文件
建立你的解决方案,你就可以开始了。干杯