2011-04-07 30 views
7

我正在創建一個需要將SDF文件安裝到SpecialFolder.CommonDocuments文件夾(Win 7中的C:\Users\Public\documents)的桌面應用程序。在Visual Studio桌面部署項目中,如何在文件系統編輯器中指定此文件夾?Visual Studio安裝程序:如何定位Windows公用文檔文件夾?

我試圖在文件系統編輯器創建一個自定義文件夾,將其指向CommonDocuments文件夾中的屬性面板中,像這樣:

Properties pane screenshot

不幸的是,該規範將無法建立。我不想硬編碼文件夾路徑,因爲它在Windows版本之間有所不同。那麼,如何在FileSystem Editor中指定CommonDocuments文件夾呢?謝謝你的幫助。

回答

11

我想出了這一個,並將其記錄爲內部目的。所以,我只是在這裏重新打印這個文件:

Visual Studio部署項目不直接支持CommonDocuments文件夾,但我們可以通過使用啓動條件編輯器(它具有「搜索目標機器」任務。我們將使用該任務在Windows註冊表中搜索公用文檔文件夾的路徑,並將結果分配給名爲COMDOCFOLDER的安裝程序屬性(實際上是一個變量)。然後,我們將使用該變量在文件系統編輯器中設置自定義文件夾的路徑。

以下是執行該任務的步驟。首先,在Visual Studio中部署項目打開啓動條件編輯器:

Launch Conditions Editor

右鍵單擊「搜索目標計算機」,然後從上下文菜單中添加註冊表搜索「。一個新的項目將出現(見上文1)。將其命名爲Get Common Documents Folder。在屬性窗格(見上面2)中,將'Property'屬性(我們的變量的名稱)設置爲COMDOCFOLDER,將'Root'屬性(註冊表根鍵搜索)設置爲vsdrrHKLM,並設置'RegKey'屬性(註冊表鍵找到)到SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders。請注意,我們從'RegKey'屬性中省略了根密鑰。最後,將'Value'屬性(我們在註冊表項中搜索的值的名稱)設置爲Common Documents。 COMDOCFOLDER變量現在將保存公用文檔文件夾的路徑。

接下來,到在Visual Studio部署項目的文件系統編輯器:

File System Editor

右鍵點擊「目標計算機上的文件系統」,並從「添加特殊文件夾>自定義文件夾」上下文菜單。一個新的項目將出現(見上文1)。重命名項目Common Documents。在屬性窗格中(見上面2),將'Property'屬性設置爲COMDOCFOLDER。我將'DefaultLocation'屬性設置爲Windows Vista及更高版本的CommonDocuments文件夾的硬編碼值;只有在COMDOCFOLDER屬性返回null值時纔會使用此值,這不應發生。安裝程序現在具有一個公共文檔文件夾,該文件夾指向Windows註冊表中指定的公用文檔文件夾。

有更多信息in this Microsoft Support How-To

+0

非常感謝發佈!你救了我很多時間,試圖弄清楚這一點! – user685869 2011-11-01 20:31:17

0

David Veeneman的答案很棒!幫了很多。 小修正:

右鍵點擊「目標計算機上的文件系統」,然後從上下文菜單中選擇「添加特殊文件夾>自定義文件夾」。一個新的項目將出現(見上文1)。重命名通用文檔項目。在屬性面板中(見上文2)中,「財產」屬性設置爲

[COMDOCFOLDER]

這些括號是必要的,否則在執行安裝程序,您會收到異常。

相關問題