用户/公共在 Windows 7 中不可写:我把用户数据放在哪里?
题
我已经开始成为一名好公民,按照这里的这个问题:
我的用户信息现在已写入环境变量:
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
然后在那里附加一个目录。如果该目录不存在,则程序会自动创建它,然后所有跨用户信息(日志文件、捕获的数据、设置选项等)都存储在该文件中。我对该文件的理解是,无论机器的设置如何,它都应该是完全用户可写的。
在 Windows XP 上,当附加到域时,没有问题;该文件被检测到并正确写入。在 Windows 7 上,该程序无法运行。用户的目录现在是 C:\ProgramData\MyFolder,并且该文件夹被创建为只读(天才!为什么不将其设置为只读,毕竟没有人愿意写入 CommonApplicationData 位置!)。
我应该使用什么目录?该“特殊文件夹”是专门用于我需要的任务的文件夹,但该文件夹似乎用户不可写入。
编辑回应第一个回复:我正在使用 WiX 安装程序,并且完全可以将任何文件添加到安装程序中。我不知道如何去做,所以请用 WiX 安装程序魔咒来回答。
解决方案
根据 Vista 兼容性指南, ,您的应用程序应该在安装程序中的 CommonApplicationsData 下为其内容创建一个文件夹(我是否提到它还必须有一个安装程序?),并为该文件夹分配适当的权限。
不隶属于 StackOverflow