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

时间:2014-04-24 13:46:31

标签: c# database windows permissions installation

我实际上已经通过了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. 其次,这是唯一的方法吗?无法将我的数据库存入我的已安装目录并授予我的应用程序访问我的数据库的完全权限吗?
  3. 我肯定在https://stackoverflow.com/a/14611895/1182021读过TomTom个答案,但是如果有任何可行的技巧,哪个是可行的,也是明智的。

1 个答案:

答案 0 :(得分:1)

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

在项目中创建的数据库全局配置文件中,以管理所有与数据库相关的工作,如添加,删除,更新和连接。对于本地数据库,定义一个像这样的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并选择文件。
  6. 构建您的解决方案,您很高兴。干杯!