2010-03-16 94 views
1

我正在創建一個自動更新自身的Windows應用程序。由於各種原因,我沒有使用ClickOnce。當我嘗試File.Move()我更新的文件到C:\ Program Files文件在Windows 7上,我得到以下錯誤:如何將新的二進制文件複製到C: Program Files?

訪問路徑「C:\ Program Files文件\ <公司> \ <應用> \ <app.exe>'被拒絕。

我沒有給UAC提示。我試圖更新的exe目前沒有運行。

+0

如何被應用最初安裝?嘗試更新時(管理員或非管理員帳戶)運行程序的帳戶是什麼? – 2010-03-16 01:17:25

+0

該應用程序最初是使用MSI安裝的,它提供了正確的UAC提示。我嘗試使用管理員帳戶運行應用程序(儘管不是「作爲管理員運行」),並且它不會引發UAC提示。 「以管理員身份運行」使其可行,但我不希望我的用戶這樣做。 – 2010-03-18 02:41:02

回答

1

你的問題是UAC,即使你沒有得到UAC提示。

你需要改變你的程序的清單自動提升。 (這會給你一個UAC提示)

+0

爲什麼這會降低投票率? – SLaks 2010-03-16 01:50:32

+0

如果實際上有要應用的更新,您應該只以管理員身份運行。 – SLaks 2010-03-16 01:51:06

+0

我用適當的清單創建了另一個exe文件。當我有一個新的更新來安裝,我打電話給其他exe來複制文件。所以UAC提示僅在需要時纔會顯示。謝謝。 – 2010-03-18 02:37:42

1

你不能在該程序的安裝文件夾的變化,你沒有必要的管理權限。將清單添加到更新程序並不實際,用戶很快就會看到提升提示。

唯一可行的方法是在運行更新的計劃任務。這些任務被允許以管理員權限運行,因爲它需要管理員權限來安排一個任務。你需要使用你的安裝程序。

相關問題