2015-06-17 220 views
1

我創建了一個windows窗體應用程序來完成一些功能。問題是當我部署應用程序時:運行沒有管理員權限的WinForms應用程序?

  1. 如果我使用ClickOnce部署,那麼一切工作正常。安裝完成後,winforms應用程序運行時不會詢問管理員密碼。
  2. 如果我使用Visual Studio Setup Project進行部署並創建MSI安裝程序,那麼安裝後每次運行時都需要管理員密碼。

我想部署使用Visual Studio安裝項目(MSI),但不希望軟件要求提升特權。

的MSI安裝程序不要求輸入密碼,但安裝的程序一樣。

+0

如果你安裝的MSI安裝程序,您需要管理員權限才能安裝,但你不應該需要管理員權限才能運行該程序。你能否澄清,該程序會自動提示輸入管理員密碼,您沒有嵌入式UAC清單,並且exe名稱不包含設置或安裝。 – sgmoore

+1

我有這個問題,因爲該應用程序的快捷方式在其屬性中設置了「以管理員身份運行」選項。 –

+0

@ThorstenDittmar我找到了,但快捷方式和EXE要求管理員權限。 – Sunny

回答

1

基本上你需要編輯(或添加,如果您還沒有一個)的app.manifest文件,然後使用requestedExecutionLevel什麼命令是需要的執行上下文。

閱讀MSDN

+0

您不應該這樣做,因爲默認情況下應用程序不需要提升權限。 –

1

更多關於它你需要創建並在您的應用程序中嵌入的應用程序清單(UAC),如所描述here。如果你不想這樣做,ClickOnce可能是一個解決方案。

MSDN有關於這一主題一些有用information,具體如下:

影響到用戶的計算機。在Windows Installer部署中,應用程序通常依賴於共享組件,並存在版本衝突的可能性;通過ClickOnce部署,每個應用程序都是獨立的,並且不會干擾其他應用程序。

安全權限。 Windows安裝程序部署需要 管理權限並且只允許有限的用戶安裝; ClickOnce部署允許非管理用戶安裝和 僅授予必要的 應用程序的代碼訪問安全權限。

+0

通常,應用程序在沒有提升權限的情況下運行。如果您希望應用程序以提升的權限運行,您必須創建清單。 –

2

你需要

工作UAC提升權限

。看看這個小姐文檔link

而且這個項目做了一些[R & d與UAC example

希望這有助於

相關問題