【发布时间】:2019-02-14 13:23:48
【问题描述】:
我正在尝试创建一个更新程序,它将替换文件夹中的文件,而无需安装程序。作为此过程的一部分,我需要能够删除旧文件并用新文件替换它们。我试了一下,得到了 UnAuthorizedException。我以管理员身份运行更新程序。我尝试了以下 一种。将文件和文件夹属性设置为正常 [Access to the path is denied when trying to delete a certain directory 湾。取得文件夹和其中包含的文件的所有权 [Taking ownership of a file or folder C。更改权限并让所有用户完全控制文件夹和文件 [在安装程序中使用自定义操作] [How to give Read/Write permissions to a Folder during installation using .NET d。从 Windows 服务运行更新程序
结果没有区别。我不断收到拒绝访问错误。我该怎么做才能让更新程序删除文件?
【问题讨论】:
-
请尝试使用“FullControl”为“Everyone”授予路径访问权限
-
感谢@gulshanarora 和 Nhan Phan。有效。没有被删除的文件是应用程序正在使用的文件
-
谢谢!您能否为我的回答“投票”,以便对其他人有所帮助。
-
仅作记录:替换正在使用的文件和执行提升的操作(例如替换
%ProgramFiles%下的文件)是 MSI 包 (Windows Installer) 和其他包类型支持的关键功能。 Restart Manager 等高级功能可用于处理正在使用的文件和任何需要的重新启动。还有许多其他问题:磁盘空间检查、事务和回滚等……从长远来看,使用此功能将对您有所帮助。只是我的2美分经验。这完全取决于我猜你的产品有多大。
标签: c# windows-services windows-installer