2012-03-28 26 views
4

我有一個C#應用程序和一個Visual Studio(2010)安裝項目。在我的安裝項目中,我使用InstallAllUsers = True。另外,我的應用程序需要在啓動時啓動,因此將快捷方式添加到User's Startup FolderInstallAllUsers選項如何工作?

因此,我以用戶Bob(從共享)安裝我的應用程序,然後我註銷並以用戶Alice身份登錄。 Alice會得到一個對話:

您嘗試使用的功能位於不可用的網絡資源上。

它提供了安裝MSI的網絡路徑。所以,基本上,它正在尋找愛麗絲無法訪問的共享上的MSI。如果愛麗絲嘗試手動啓動啓動鏈接,則此操作可重複執行。 但是,Alice可以直接從安裝位置啓動exe,這很好。

我不完全理解爲什麼它尋找一個MSI,但我想這是有道理的,一個應用程序不能完全由一個用戶其他用戶安裝,所以需要微星完成安裝。

但是,如果是這種情況,那麼我不明白爲什麼MSI只從啓動鏈接啓動時才需要,而不是直接從exe啓動。

我的問題有以下幾個部分:

  1. 就是我遇到的預期行爲的InstallAllUsers選項?
  2. 如果是這樣,我如何確保我的應用程序已完全安裝給所有用戶?
  3. 是否有必要在本地複製msi,並確保在每個用戶有機會登錄之前它不會被刪除?
+0

我會檢查快捷方式文件並查看它指向的位置。當其他用戶使用該應用程序時,InstallAllUsers不尋找MSI。 – code4life 2012-03-28 21:26:28

+0

兩個用戶的網絡驅動器映射是否相同? – Jetti 2012-03-28 21:34:52

+0

@ code4life,真的嗎?這對我來說是個好消息......不幸的是,快捷鍵幾乎沒有任何信息。在屬性中,它將'Target'(灰色)列爲我的應用程序名稱(不是文件名 - 顯示名稱)。 「目標位置」爲空,「開始」設置爲我應用程序exe的完整路徑(不包括exe,僅包含路徑)。 – Eric 2012-03-28 21:39:32

回答

2

發生這種情況,因爲快捷方式「標榜的快捷鍵」因此,灰色的目標框。

更多資訊...

http://www.advancedinstaller.com/user-guide/advertised-shortcuts.html

當通告的快捷方式啓動它驗證與關鍵資源相關的檢查 。如果缺少任何內容,它將修復 運行安裝包並再次從.msi文件安裝所有信息 。

這就是爲什麼它試圖運行msi。

您可以通過閱讀這篇文章關閉廣告快捷方式...

DISABLEADVTSHORTCUTS=1 disables all shortcuts

如果它的所有用戶安裝,然後在快捷方式可能會想駐留在所有用戶的開始菜單。 Win 7:C:\ ProgramData \ Microsoft \ Windows \ Start Menu。

+0

優秀的答案 - 這是我確切的問題。 – Eric 2012-03-28 23:16:25