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

C# 读取/写入程序文件时拒绝访问,c#,access-denied,elevation,C#,Access Denied,Elevation,我有一个小程序,安装在程序文件的自定义文件夹中,但当我试图读取或写入操作所需的文件时,该程序会引发一个拒绝访问的例外。当然,在用户许可的情况下,我怎样才能删除程序。我想你是在Vista下运行的吧?在Vista中,我认为不允许您读取/写入程序文件下的文件,您应该将数据文件放在文档和设置中。您可以使用ClickOnce API执行所需的所有操作。如果您有多个部件(例如,多个EXE),则需要将它们包含在软件包中 据我所知,ClickOnce不支持的唯一方案是验证代理。ClickOnce支持安装任意数量

我有一个小程序,安装在程序文件的自定义文件夹中,但当我试图读取或写入操作所需的文件时,该程序会引发一个拒绝访问的例外。当然,在用户许可的情况下,我怎样才能删除程序。

我想你是在Vista下运行的吧?在Vista中,我认为不允许您读取/写入程序文件下的文件,您应该将数据文件放在文档和设置中。

您可以使用ClickOnce API执行所需的所有操作。如果您有多个部件(例如,多个EXE),则需要将它们包含在软件包中


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

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


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

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

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

不,它在XP中,但我打算在Vista中运行它。你可以读取Program files文件夹中的文件,只是不写入它们,除非你有提升的权限。我如何获得提升的权限?