c#使用非管理员用户权限更新程序文件

时间:2015-12-10 21:47:20

标签: c#

如您所知,C:\ Program Files是受限制的文件夹,只有管理员才能修改此文件夹的内容。 我的c#应用程序有能力自我更新。所以我需要从服务器以编程方式下载一些文件,并用旧文件替换它们。这些文件在Program Files中。我该怎么办呢?

2 个答案:

答案 0 :(得分:1)

如果您需要在需要管理员权限进行更新的任何地方运行您的应用程序,那么您会非常困难。您被迫将进程的权限提升到管理员级别以执行更新。

此问题的解决方案是将您的应用程序安装在其他位置 - 某个不需要管理员权限的位置。

答案 1 :(得分:0)

您将需要生成一个帮助应用程序,它将升级以获取适当的权限,将新二进制文件复制到需要的位置,然后退出。也许您可以将copy.exe与知道升级的Process.Start结合使用。 This SO article似乎表明你可以毫不费力地做到这一点。但是,如果您的程序位于C:\Program Files

,则无法管理管理员权限