无法删除“ Program Files \ my app”文件夹中的文件:System.UnauthorizedAccessException:拒绝访问路径“

时间:2018-09-10 06:28:53

标签: c# windows-services windows-installer

我正在尝试创建一个不需要安装程序即可替换文件夹中文件的更新程序。作为此过程的一部分,我需要能够删除旧文件并将其替换为新文件。我试了一下,并得到了UnAuthorizedException。我以管理员身份运行更新程序。我尝试了以下 一种。将文件和文件夹属性设置为“普通” [Access to the path is denied when trying to delete a certain directory b。获取文件夹及其中包含的文件的所有权 [Taking ownership of a file or folder C。更改权限并授予所有用户对文件夹和文件的完全控制权[在安装程序中使用自定义操作] [How to give Read/Write permissions to a Folder during installation using .NET d。从Windows服务运行更新程序

结果没有差异。我一直收到拒绝访问错误。我该怎么做,以便更新程序可以删除文件?

1 个答案:

答案 0 :(得分:1)

“以管理员身份运行”的含义尚不清楚,但是以管理员身份登录并运行程序并不意味着该程序正在以提升的特权运行,这实际上是需要的。但是很明显,更新程序并未运行提升。

因此问题可能是您的此更新程序需要一个海拔清单,因此在运行它时,它将通过UAC提示要求海拔。

话虽如此,不支持仅替换使用Windows安装程序MSI安装的文件。这些文件必须替换为Windows Installer更新,例如补丁.msp文件或升级的MSI文件。 Windows Installer会跟踪安装的每个文件,版本,是否已更新以及文件哈希。不使用Windows Installer替换文件可能会导致对原始MSI文件的意外需求,以便Windows可以将文件还原到其原始安装状态。您可能会发现转到“程序和功能”(或右键单击MSI文件)并选择“修复”也会还原它们。