如何将新二进制文件复制到C:\ Program Files?

时间:2010-03-16 01:00:39

标签: .net uac code-access-security

我正在创建一个自动更新的Windows应用。我出于各种原因没有使用ClickOnce。当我尝试将我更新的文件File.Move()发送到Windows 7上的C:\ Program Files时,出现以下错误:

访问路径'C:\ Program Files \< company> \< app> \< app.exe>'被拒绝。

我没有得到UAC提示。我正在尝试更新的exe当前没有运行。

2 个答案:

答案 0 :(得分:1)

您的问题是UAC,即使您没有收到UAC提示。

您需要更改程序的清单以自动提升。 (这将为您提供UAC提示)

答案 1 :(得分:1)

您无法在程序的安装文件夹中进行更改,您没有所需的管理员权限。向更新程序添加清单是不切实际的,用户很快就会厌倦地看到提升提示。

唯一可行的方法是将更新程序作为计划任务运行。允许使用管理员权限运行这些任务,因为它需要管理员权限才能安排一个任务。您需要使用安装程序。