如何将新的二进制文件复制到C:\ Program Files?
问题描述:
我正在创建一个自动更新自身的Windows应用程序。由于各种原因,我没有使用ClickOnce。当我尝试File.Move()我更新的文件到C:\ Program Files文件在Windows 7上,我得到以下错误:如何将新的二进制文件复制到C: Program Files?
访问路径“C:\ Program Files文件\ <公司> \ <应用> \ <app.exe>'被拒绝。
我没有给UAC提示。我试图更新的exe目前没有运行。
答
你不能在该程序的安装文件夹的变化,你没有必要的管理权限。将清单添加到更新程序并不实际,用户很快就会看到提升提示。
唯一可行的方法是在运行更新的计划任务。这些任务被允许以管理员权限运行,因为它需要管理员权限来安排一个任务。你需要使用你的安装程序。
如何被应用最初安装?尝试更新时(管理员或非管理员帐户)运行程序的帐户是什么? – 2010-03-16 01:17:25
该应用程序最初是使用MSI安装的,它提供了正确的UAC提示。我尝试使用管理员帐户运行应用程序(尽管不是“作为管理员运行”),并且它不会引发UAC提示。 “以管理员身份运行”使其可行,但我不希望我的用户这样做。 – 2010-03-18 02:41:02