2011-08-18 165 views
0

我正在爲客戶端創建C#.Net 4.0桌面應用程序。當我向他發送.msi文件時,它在嘗試安裝時需要管理權限。我意識到爲什麼是因爲我正在將應用程序安裝到「Program Files」目錄中。.net桌面應用程序安裝

有沒有辦法將應用程序安裝到用戶計算機上的某個區域,而不需要它們以管理員身份進行安裝?

我使用.NET 4.0

+1

看到這個http://serverfault.com/questions/19341/how-do-i-run-a-msi-installer-with-elevated-priviledges-on-windows – Adeel

+0

我想我問的是什麼時候我正在構建我的項目。我可以構建它,以便MSI文件並不需要管理員來安裝它 – webdad3

+0

是否有您喜歡使用MSI的原因嗎?您可以使用xcopy方法進行部署。只需將整個文件夾複製到當前用戶有權限的位置即可。 –

回答

1

不知道這是否會解決「需要管理員」的問題,但你可以在「文件系統」更改目標文件夾安裝查看您的安裝項目:

  • 上的安裝項目右鍵單擊解決方案資源管理器並選擇查看/文件系
  • 選擇「應用程序文件夾」。
  • 在屬性中,更改DefaultLocation。

此外,將setup.exe與* .msi一起分發通常是一個好主意,因此可以自動安裝任何缺失的先決條件。

+0

在我的答案的鏈接我沒有看到該選項。我不確定這是否能解決我的問題。我想我可以嘗試。 – webdad3

+0

您也可以嘗試關閉安裝項目屬性窗格中的「InstallAllUsers」(而不是右鍵單擊屬性,您需要選擇安裝項目,然後切換到「常用」屬性)。 –

1

取決於哪些依賴的應用程序已經可以嘗試的XCOPY部署 - 儘管似乎只記錄了VS2005 + VS2008 ...

我們通常嵌入所有的依賴到應用程序中(在我們的例子中是EXE文件),這樣它就可以通過複製它來「安裝」......只要框架需要(即我們的例子中的.NET4)已經存在...

請參閱http://msdn.microsoft.com/en-us/library/ms235291%28VS.90%29.aspx

1

如果您添加清單文件並分配給應用程序,那麼您需要設置執行級別。

以下是您可以設置執行級別的行。

< requestedExecutionLevel水平= 「asInvoker」 uiAccess = 「假」/ >

如果你想,那麼你需要改變上述聲明如下

< requestedExecutionLevel水平的exe文件運行始終爲administator運行= 「requireAdministrator」uiAccess =「false」/ >

請參閱以下鏈接如何創建清單文件。

http://mahesg.wordpress.com/2007/07/30/adding-manifest-to-net-application/

+0

這看起來很有希望,但在VS2010中我無法實現它的工作。我在其中一個步驟中遇到錯誤。 – webdad3

0

我已經用鼠標右鍵點擊「目標計算機上文件系統」增加了「用戶的應用程序數據文件夾」,圍繞管理權限,得到了從「應用程序文件夾」感動了所有文件到它。安裝程序仍會提示安裝目錄,但會被忽略。快捷鍵仍然可以正常設置。

它安裝到Win7上的以下目錄C:\ Users \ username \ AppData \ Roaming 在xp下,它在一些位置位於文檔和設置文件夾下。

我問的問題爲什麼谷歌瀏覽器並不需要獲得許可,並發現它安裝在一個稍微不同的文件夾C:\ Users \用戶名\ AppData \本地\谷歌\鍍鉻\應用。

相關問題