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)),从那里我希望访问我的数据库,因为它将是一个公共访问文件夹(我浏览并得出了这个结论)

  1. 在部署应用程序时如何定义它?意味着当我部署Setup and Deployment project时,它会自动将我的数据库文件放在C:'Program Files'MyApplication'中,因此我的应用程序无法访问ApplicationData文件夹中的数据库
  2. 第二,这是唯一的办法吗?我不能将我的数据库放入我安装的目录中,并授予我的应用程序访问数据库的完全权限吗

我肯定在上读过TomTom的答案https://stackoverflow.com/a/14611895/1182021但如果有任何技巧可以做到,并且是可行和可取的。

C#应用程序部署:无法更新数据库,因为该数据库是只读的

好吧,我不知道为什么我还没有得到任何答案。我真的在努力解决这个问题,最终找到了解决方案。

在您在项目中创建的数据库全局配置文件上,管理所有与数据库相关的工作,如添加、删除、更新和连接。对于本地数据库,定义一个LocalDbPath,如下所示:

public string LocalDBPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

然后在数据库连接中的任何位置使用相同的LocalDBPath

通过设置和部署部署项目时,请转到:

  1. File System Editor
  2. 右键单击File System on Target Machine
  3. 选择Add Special Folder
  4. 选择User's Application Data Folder
  5. 进入User's Application Data Folder->右键单击Add->File并选择文件,即可添加数据库文件

建立你的解决方案,你就可以开始了。干杯