【问题标题】:Visual Studio installer project sets my database to require admin privileges to write when installed with elevated permissionsVisual Studio 安装程序项目将我的数据库设置为在使用提升的权限安装时需要管理员权限才能写入
【发布时间】:2012-04-15 23:38:15
【问题描述】:

我正在 Visual Studio 2010 中为要与 Microsoft Excel 一起使用的 C# 插件生成安装项目。我的插件使用 SQLite 数据库,并且该数据库需要对使用插件的用户具有写入权限。

问题是我还需要写入 HKLM 中的注册表和 Program Files 目录。为此,安装程序必须以提升的权限运行,这不是问题,但是当我这样做时,数据库设置为需要管理员权限才能写入,这是一个问题,尽管在 CommonAppData 文件夹中播放需要管理员权限。

是否可以在安装项目中将数据库设置为不需要管理员权限?我可以使用:Visual Studio 安装项目、Installshield 2008 和 Installshield 2012。

我发现了一个与我在此处发布的几乎相同的问题:Visual Studio installer project - setting file permission

但是,msdn 链接已失效,而另一个链接仅建议将文件放在不需要提升权限的位置。

(注意:为了测试的目的,我只是删除了需要放入程序文件中的部分文件,并写入 HKCU,以便我可以暂时解决这个问题;但是这不会发生适合部署,因为这将被添加到需要解决这些问题的更大项目中。)

【问题讨论】:

    标签: database sqlite permissions installation


    【解决方案1】:

    CommonAppData 文件夹是每台计算机的位置,因此需要管理员权限。任何可由多个用户帐户访问的文件夹都需要提升才能写入。

    AppDataFolder 是一个不需要管理员权限的文件夹,但它的内容只针对当前用户帐户。

    您可以尝试在 CommonAppData 中为您的自定义文件夹设置权限。也许这篇文章会有所帮助:http://setupanddeployment.com/installation-environment/set-permissions-installation-folder/

    【讨论】:

    • 谢谢。在我的疏忽中,我查看了错误的用户组对文件的权限,这导致我认为普通用户可以在他们不能写入数据库时​​写入。
    猜你喜欢
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 2022-12-05
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    相关资源
    最近更新 更多