2010-06-13 51 views
2

我有一個使用Visual Studio 2008構建的WinForms應用程序。我添加了一個安裝項目到解決方案來創建安裝MSI文件。我需要安裝項目來創建一個指向用戶發送到菜單中應用程序可執行文件的快捷方式。這樣當有人右鍵點擊文件時,我的應用程序將顯示在發送到列表中並被選中。VS 2008創建的快捷方式沒有出現在「發送到」菜單

我想出了安裝項目的文件系統設置下如何添加用戶發送到菜單的快捷方式。問題是,右鍵單擊文件時,快捷方式不會顯示在「發送到」菜單中。如果我手動爲我的可執行文件創建一個快捷方式,則應用程序在「發送到」菜單中顯示。

我已經在網上閱讀了許多關於所需註冊表條目的建議,以便使其工作。有一個由Ramesh Srinivasan寫入的VBS文件插入它們。在每個系統上我都試過這個註冊表值已經存在了,所以這個是不是的問題。看起來更多的是用Visual Studio(或者MSI)創建的快捷方式。

我在Windows XP和Windows 7上遇到過同樣的問題,我還沒有在其他操作系統上嘗試過。

+0

在XP上,快捷方式應該在'C:\ Documents and Settings \ \ SendTo'中創建。你能證實你正在那麼做嗎? AllUsers中沒有'SendTo',所以需要爲每個用戶創建。 – ChrisF 2010-06-13 22:01:20

+0

已確認,這是msi安裝程序放置文件的位置。就像我在寫作中所說的那樣,安裝程序的快捷方式不起作用,但如果我用手動創建的快捷方式替換它,它確實有效。 – Brettski 2010-06-13 22:26:59

回答

2

發送到菜單要求該快捷方式是指向可執行文件的常規快捷方式。構建MSI時由Visual Studio創建的快捷方式是廣告快捷方式。公告快捷方式不指向已安裝的可執行文件,而是指向MSI安裝程序,從而實現按需安裝。

您必須在MSI上設置DISABLEADVTSHORTCUTS屬性才能擁有常規快捷方式。不幸的是,您必須在安裝程序上使用後期構建事件來設置DISABLEADVTSHORTCUTS屬性 - Visual Studio不提供簡單的設置方法。

請參閱Damien Vogel to this post的答案,詳細說明如何設置後期構建事件。

+0

謝謝您的信息;我希望它對某人有用。爲了解決這個問題和其他MSI安裝程序問題,我爲我的安裝使用了NSIS(http://nsis.sourceforge.net/Main_Page)。 – Brettski 2010-12-31 04:12:13

相關問題