簡而言之: 我是新來的VisualStudio可擴展性和我的目標是創建一個工具窗口顯示每個不同意見的擴展(已工作) VisualStudio解決方案的上下文,i。即解決方案視圖,項目視圖等。通過單擊解決方案資源管理器,類視圖,對象瀏覽器和(理想情況下)顯示內容的任何其他窗口的上下文菜單中的上下文菜單項來打開窗口項目,命名空間,類等。如何處理解決方案,項目及其內容在VisualStudio的擴展
搜索後,我發現了很多信息,但對於某些點我找不到非常有用的信息。我如何...
- ...爲VisualStudio視圖創建上下文菜單項?
- ...獲取當前開放的解決方案作爲代碼中的實例?
- ...獲取解決方案的項目和他們作爲代碼中的實例?
- ...在代碼中向/從解決方案/項目/類/ ...添加/刪除項目?
- ...對解決方案資源管理器中的選擇更改做出反應?
我做了什麼,至今: 我讀Starting to Develop Visual Studio Extensions的文檔和下載的VSSDK-Extensibility-Samples。特別是WPF_Toolwindow的例子對我的目的很有意思,所以我建立並運行了它,目前爲止已經成功。另一個有趣的例子是WPFDesigner_XML,但它總是拋出一個NullReferenceException,所以我決定堅持使用之前的ToolWindow,現在它完全沒問題。另外,我試着通過仔細觀察項目中的每個文件,在調試器中運行它並分析發生的事情來了解該示例。我確信自己明白這一點,但也可以糾正我後面可能出現的錯誤想法。
現在,我已經創建了一個基於WPF_Toolwindow示例的新項目,重新命名並適應了我的需要(基本上,我創建了新的GUID,重命名了名稱空間並刪除了我不會使用的東西)。該擴展仍然在調試器中工作。我甚至從實驗實例中卸載了所有內容,並從頭開始調試擴展。
我儘量做到:
- 有工具窗口加載特定視圖/視圖模型,在Solution Explorer中選擇更改(或任何其他的VisualStudio視圖)。另外,解決方案資源管理器樹(或任何其他VisualStudio視圖)中的每個節點的上下文菜單都應該有一個上下文菜單項。
- 獲取當前開放的解決方案,包含的項目和基本上所有內容,從解決方案資源管理器的內容作爲實例在我的viewmodel中可處理。我需要正確地從
- 一個文件夾中的項目添加/刪除
- 類/結構/枚舉到/
- 命名空間
- 一個文件夾中的項目添加/刪除
- 屬性/字段/從一個類/結構
有沒有人知道這樣的事情的例子或任何人都可以給我一些提示,我可以找到更多的信息?任何幫助,將不勝感激。提前致謝。
第一個問題,你的意思是在項目項添加上下文菜單動態。第二個問題,請嘗試使用Roslyn從解決方案中獲取相關的類。 –
第三個問題,你的意思是生成一個代碼文件並將該文件添加到項目中? –
(1)這些項目已經有一個上下文菜單,我想添加一個新的命令到這個菜單。 (2)感謝Roslyn的提示,我會看看。 (3)是的,基本上將一個文件添加到項目中,而無需手動操作項目文件會很好。 –