在Windows 7下为非管理员用户提供目录的完全控制

Don*_*alo 3 .net c# deployment permissions

我正在研究用C#和.NET Framework 3.5编写的软件.该软件的安装程序由Visual Studio 2008中的"安装和部署>安装项目"创建.最初该软件是为Windows XP编写的.现在我需要修改它,以便它也可以在Windows 7下运行.

在Windows 7中,要安装软件需要管理员权限.因此,admin成为安装期间创建的安装目录的所有者.该软件将由非管理员用户使用,他们默认只具有安装目录的读取和执行访问权限.但该软件的设计方式使其可以写入安装目录.有一个startup.ini配置文件驻留在安装目录中,非管理员应该能够修改该文件以改变软件的行为.

如果软件是从非管理员帐户运行的,则无法写入安装目录.非管理员也无法更改startup.ini文件.

作为一种解决方法,目前管理员安装它会更改安装目录的权限,以便非管理员可以编写和修改它.

我希望它在安装后自动完成.安装程序应该以某种方式处理权限.我怎样才能做到这一点?请注意,我无法更改软件行为,因此不再写入安装目录.必须为非管理员提供必要的权限,以便他们可以拥有修改和写入权限.

我正在使用Windows XP SP3进行开发.涉及的所有操作系统(XP和7)都是32位.

提前致谢.

Yah*_*hia 5

您应该更改应用程序,以便将其INI文件存储在普通用户可以写入的位置 - 请参阅http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/77aaf6e1-8de5-4529- 9b26-fa89b55fcc49

编辑:
如果这是absolutley不可能那么:在安装项目中创建一个"自定义操作"并更改权限...一个很好的起点是

http://www.redmondpie.com/applying-permissions-on-any-windows-folder-using-c/

http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesystemsecurity .addaccessrule.aspx