【问题标题】:Visual Studio Deployment Project - How to give a user write access to a resource fileVisual Studio 部署项目 - 如何授予用户对资源文件的写入权限
【发布时间】:2015-03-30 12:03:44
【问题描述】:

在 Visual Studio (2013) 部署项目中,我有一个资源文件(一个名为 settings.cfg 的文本文件),应将其复制到应用程序文件夹中。该文件的 ReadOnly-Property 设置为 False。

在目标平台(Win 7 Pro)上安装后,该文件存在(在应用程序文件夹中),但该文件不能由没有管理员权限的用户修改,它是只读的。

显然,在 windows-explorer 中,您可以在属性对话框中修改访问选项,但您需要管理员权限 + 时间/精力。

有没有办法允许任何用户从 Visual Studio 修改文件?

【问题讨论】:

    标签: visual-studio-2013 windows-installer deployment-project


    【解决方案1】:

    编辑回答:如果您希望受限用户能够更新文件,请不要在 Program Files 文件夹中安装文件。像用户的应用程序数据文件夹这样的文件夹实际上是用于存储用户数据的。

    实际的答案是 Visual Studio 设置中没有内置任何内容来执行此操作,因此这意味着编写自定义操作代码来更改访问权限。这实际上是一个“我如何更改文件的访问权限”问题,而不是关于设置项目的问题。我怀疑将该文件移动到可以正常工作的位置的代码和设置更改可能更容易。

    这里有很多自定义操作的示例:

    https://www.google.com/?gws_rd=ssl#q=visual+studio+custom+action+walkthrough

    这也应该有帮助:

    https://www.simple-talk.com/dotnet/visual-studio/visual-studio-setup---projects-and-custom-actions/

    【讨论】:

    • 这不是文件放置位置的问题。该文件不应是特定于用户的,而是特定于目标系统的。因此我没有使用用户的 appdata 文件夹。将文件的位置更改为 AppData 文件夹或自定义文件夹不会改变任何内容。但是从你的回答看来,你不能从 vs setup 项目中做到这一点。无论如何,谢谢。
    • 顺便说一下自定义操作代码是什么意思?就像必须在安装时运行的批处理脚本一样?这会让我想到一个问题:您可以在安装项目中包含一个批处理脚本并从安装程序/由安装程序运行它吗?我的猜测是否定的,但我很乐意弄错。
    • Phil 知道这一点,但好心说出来......编写自定义操作来操作文件 ACL 是一种可怕的重新发明轮子反模式。在 .BAT 中这样做是很不专业的。看看另一个 MSI 创作工具,它实际上会公开底层 LockPermissions 表以避免这些陷阱。
    猜你喜欢
    • 2011-02-23
    • 2013-08-22
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多