读取/写入程序文件时访问被拒绝

时间:2008-11-18 08:53:29

标签: c# access-denied elevation

我有一个小程序安装在程序文件的自定义文件夹中,但是当我尝试读取或写入操作所需的文件时,程序会引发一个拒绝访问的执行程序。当然,如何在用户允许的情况下升级程序。

4 个答案:

答案 0 :(得分:1)

我猜你在Vista下运行?在Vista中,我认为您不允许读取/写入Program Files下的文件,您应该将数据文件放在Documents and Settings中。

答案 1 :(得分:1)

在阅读时解决访问被拒绝的异常。请将文件访问权限指定为读取,以便在阅读时解决访问被拒绝的异常

e.g. fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);

答案 2 :(得分:0)

您可以使用 ClickOnce API 完成所需的一切。如果您有多个部分(例如,多个EXE),则需要将它们包含在您的包中。

据我所知,唯一不支持的方案(ClickOnce)是对代理进行身份验证。

答案 3 :(得分:0)

ClickOnce支持安装任意数量的可执行文件,但您可能需要手动将它们包含在清单定义中。

为了正确并且在最低用户访问(LUA)和用户访问控制(UAC)的限制下,除了在安装期间,应用程序不应该写入程序文件文件夹。如果必须这样做,则应包含一个清单文件,指示您的应用程序需要提升权限才能运行。 (如果您在Vista上运行,还可以设置兼容模式。)