HOW TO:定義與安裝模型擴充功能
在 Visual Studio Ultimate,您可以定義擴充功能來模組化圖表。如此,您可以讓圖表和模型符合自己的需要。例如,可以定義功能表命令、UML 設定檔、驗證條件約束和工具箱項目。您可以在單一擴充功能中定義數個元件。您也可以以 Visual Studio Integration Extension (VSIX) 的格式分散這些副檔名給其他 Visual Studio Ultimate 使用者。 您可以在 Visual Studio 中,使用 VSIX 專案來建立 VSIX。
需求
Visual Studio SDK是一個您可以從 Visual Studio 組件庫取得的東西。
Visual Studio Visualization and Modeling SDK是一個您可以從 Visual Studio Visualization and Modeling SDK on Code Gallery取得的東西。
建立模型擴充功能方案
若要定義模型擴充功能,您必須建立包含下列專案的方案:
一個 Visual Studio Integration Extension (VSIX) 專案。這會產生一個檔案,做為擴充功能元件的安裝程式。
類別庫專案,為含程式碼的元件所需。
如果您要建立具有數個元件的擴充功能,您可以在單一方案中開發這些元件。您只需要一個 VSIX的專案。
不需要程式碼的元件 (例如自訂工具箱項目和自訂 UML 設定檔) 可以被直接加入至 VSIX 專案,而不需使用類別專案。要求程式碼的元件在個別的類別庫專案中能更輕鬆地定義。要求程式碼的元件包含筆勢處理常式、功能表命令和驗證的程式碼。
若要為功能表指令,手勢處理及驗證來建立類別庫專案
在 [檔案] 功能表上,選擇 [新增, 專案]。
在 [已安裝的範本] 下,選取的 [Visual C#] 或 [Visual Basic]然後選取 [類別庫]。
若要建立 VSIX 專案
如果您要建立含有程式碼的元件,先建立類別庫專案,將是最簡單的方式。您會將程式碼加入至該專案。
建立 VSIX 專案。
在 [方案總管]裡的捷徑功能表中,選取 [新增], [新增專案]。
在 [已安裝的範本] 底下,展開 [Visual C#] 或 [Visual Basic],然後選取 [擴充性]。在中間的欄位中,選擇 [VSIX 專案]。
將 VSIX 專案設定為方案的啟始專案。
- 在 [方案總管] 裡的 VSIX 專案的捷徑功能表中選取 [設定為啟始專案]。
開啟 source.extension.vsixmanifest。檔案隨即在資訊清單編輯器中開啟。
在 [中繼資料] 選項中設定 VSIX 的名稱和描述欄位。
在 [安裝目標] 索引標籤上,選取 [新增] 以及設定 Visual Studio 的Ultimate and Premium editions。
在 [資產] 索引標籤,將您的元件加入 Visual Studio 擴充功能。
請選擇 [新增]。
針對有程式碼的元件,設定 [加入新的屬性] 對話方塊中的欄位:
型別 =
Microsoft.VisualStudio.MefComponent
資源 =
目前方案中的專案。
專案 =
您的類別庫的專案
內嵌在資料夾 =
(空白)
至於其他元件型別,請參閱下一節中的連結。
開發元件
對於功能表命令或筆勢處理常式之類的每項元件,您必須定義個別的處理常式。您可以在相同的類別庫專案中放入多個處理常式。下表是各種不同處理常式的摘要。
擴充功能類型 |
主題 |
每項元件的一般宣告方式 |
---|---|---|
功能表命令 |
[ClassDesignerExtension] // or other diagram types [Export(typeof(ICommandExtension))] public class MyCommand : ICommandExtension {... |
|
拖放或按兩下 |
[ClassDesignerExtension] // or other diagram types [Export(typeof(IGestureExtension))] public class MyGesture : IGestureExtension {... |
|
驗證條件約束 |
[Export(typeof( System.Action<ValidationContext, object>))] [ValidationMethod(ValidationCategories.Save | ValidationCategories.Menu)] public void ValidateSomething (ValidationContext context, IClassifier elementToValidate) {...} |
|
工作項目連結事件處理常式 |
[Export(typeof(ILinkedWorkItemExtension))] public class MyWorkItemEventHandler : ILinkedWorkItemExtension {... |
|
UML 設定檔 |
(被定義) |
|
工具箱項目 |
(被定義) |
在開發擴充功能期間執行該擴充功能
若要在開發擴充功能期間執行該擴充功能
在 Visual Studio 偵錯 功能表中選擇 開始偵錯。
此時會建置專案,而且 Visual Studio 的新執行個體會以「實驗」模式啟動。
- 或者,您可以選擇 [啟動但不偵錯]。這樣可以減少啟動程式所需的時間。
建立或開啟一個實驗執行個體的模型專案,並建立或開啟圖表。
您的擴充功能隨即載入並執行。
如果您使用 [啟動但不偵錯] 時想要使用偵錯工具,請返回Visual Studio的主要執行個體。在 [偵錯] 功能表上,按一下 [附加至處理序]。在對話方塊中選取名為 devenv 的實驗執行個體。
安裝和解除安裝擴充功能
執行下列步驟來執行您自己或其他電腦上的Visual Studio主要執行個體的副檔名。
在您的電腦中,尋找由擴充功能專案建置的 .vsix 檔案。
在 [方案總管]裡的專案的捷徑功能表,選取 [開啟 Windows 檔案總管中的資料夾]。
尋找 bin\*\YourProject.vsix 檔案
將 .vsix 檔案複製到要安裝擴充功能的目標電腦上。該電腦可以是您自己的電腦或其他電腦。
- 目標電腦必須具有其中一個Visual Studio的版本,其為您指定的安裝目標選項的 source.extension.vsixmanifest。
在目標電腦上,開啟 .vsix 檔案,例如按兩下。
[Visual Studio 擴充功能安裝程式] 隨即開啟,並安裝擴充功能。
啟動或著重新啟動 Visual Studio。
若要解除安裝擴充功能
按一下 [工具] 功能表上的 [擴充管理員]。
展開 [已安裝擴充功能]。
選取相應的擴充功能,然後按一下 [解除安裝]。
很少會發生因擴充功能故障而無法載入的情況,在這種情況下,錯誤視窗中會產生報告,但不會出現在 [擴充管理員] 中。在這種情況下,您可以到下列位置刪除檔案藉此移除擴充功能,其中 %LocalAppData% 通常是 DriveName:\Users\UserName\AppData\Local:
%LocalAppData%\Microsoft\VisualStudio\11.0\Extensions