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

问题描述:

我有一个安装在程序文件的自定义文件夹中的小程序,但是当我试图读取或写入需要运行的文件时,程序会引发Access拒绝执行。我怎样才能提升程序,当然用户的许可。当读取/写入程序文件时访问被拒绝

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

+0

没有它在XP,但我打算在Vista中运行它太 – 2008-11-18 09:00:17

您可以使用ClickOnce API来做你需要的一切。如果您有多个部分(例如,多个EXE),那么您需要将它们包含在您的包中。

据我所知,唯一不支持的方案(ClickOnce)是验证代理服务器。

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

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

在读取时解决访问被拒绝的异常。请指定为读取文件的访问,这将解决拒绝访问异常,而读

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