【问题标题】:setup deployment: How to give permissions to the C: directory application folder database?setup部署:如何授予C:目录应用程序文件夹数据库的权限?
【发布时间】:2012-04-16 11:11:13
【问题描述】:

我在 C# .Net 中做了一个小应用程序,它使用 Access 数据库。该应用程序已完成,但是当我尝试通过 install Shield 安装它时遇到了一个小问题。 我做了一些研究,问题似乎是权限。数据库很短,位于 app 文件夹(C:Programs/app 文件夹)中。 在我的电脑上,我安装并成功运行它,因为我是系统的管理员,但是当我在其他电脑上安装它时,应用程序可以读取数据库中的数据,但它不能插入数据。

我的问题是:如何授予对数据库进行写入的权限,将数据库保存在 app 目录中?

提前致谢

【问题讨论】:

  • 这就是为什么微软多年来一直建议开发人员将需要写入用户特定或通用文件夹中的文件存储...
  • 所以最好的解决方案是将访问文件放在另一个目录中,如 Documents ?因此,必须在每台机器上安装应用程序后配置连接字符串......这不是我想要的。
  • 您可以在代码中动态生成连接字符串。
  • 那可能是最好的。我该怎么做?假设我将数据库放在 C:\user\Documents 中。在每台机器中,“用户”都是不同的。那么,如何让 setup 部署将数据库文件保存在文档中,并获取数据库的正确路径?
  • 你试图把它放在程序的安装文件夹中,这意味着你希望机器的所有用户访问同一个数据库。这也意味着您可以将数据库放入公共应用程序数据文件夹 (Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)),它是“用作所有用户使用的特定于应用程序数据的公共存储库的目录”。 (来自 MSDN)。您需要做的就是将数据库放在您的设置中,并使用适当的连接字符串构建器在代码中构造连接字符串。

标签: c# database visual-studio-2010 permissions setup-deployment


【解决方案1】:

使用cacls 或xcacls 工具授予对mdb 文件的写入权限并在目录上创建文件。

【讨论】:

  • 但是那个工具我需要在安装应用程序后运行它吗?问题是我不是在其他机器上安装应用程序的人,他们不知道该怎么做。我想要更改 C# 代码以授予权限或进行安装设置以授予权限。这可能吗?
猜你喜欢
  • 1970-01-01
  • 2011-08-31
  • 2019-06-18
  • 1970-01-01
  • 2017-01-03
  • 1970-01-01
  • 1970-01-01
  • 2011-09-01
  • 1970-01-01
相关资源
最近更新 更多