方法: モデリング拡張機能を定義およびインストールする
Visual Studio Ultimate では、モデリング図に対して拡張機能を定義することができます。 これにより、図とモデルを各自のニーズに適応させることができます。 たとえば、メニュー コマンド、UML プロファイル、検証制約、およびツールボックスの項目を定義できます。 単一の拡張機能で複数のコンポーネントを定義できます。 また、これらの拡張機能を VSIX (Visual Studio Integration Extension) の形式で他の Visual Studio Ultimate ユーザーに配布することもできます。 Visual Studio で VSIX プロジェクトを使用して VSIX を作成できます。
要件
Visual Studio SDK (Visual Studio ギャラリーから入手可能できます)。
Visual Studio Visualization and Modeling SDK (コード ギャラリーの Visual Studio Visualization and Modeling SDK から入手できます)。
モデリング拡張機能ソリューションの生成
モデリング拡張機能を定義するには、次のプロジェクトを含むソリューションを生成する必要があります。
Visual Studio Integration Extension (VSIX) プロジェクト。 このプロジェクトでは、拡張機能のコンポーネントのインストーラーとして機能するファイルを生成します。
プログラム コードを含むコンポーネントに必要なクラス ライブラリ プロジェクト。
1 つの拡張機能を複数のコンポーネントで構成する場合は、単一のソリューションにそれらのコンポーネントを組み込むことができます。 必要な VSIX プロジェクトは 1 つだけです。
カスタム ツールボックス項目やカスタム UML プロファイルなど、コードを必要としないコンポーネントは、別個のクラス ライブラリ プロジェクトを使用せずに直接 VSIX プロジェクトに追加できます。 プログラム コードが必要なコンポーネントは、別個のクラス ライブラリ プロジェクトを使用してさらに簡単に定義できます。 コードが必要なコンポーネントとしては、ジェスチャ ハンドラー、メニュー コマンド、検証コードなどがあります。
メニュー コマンド、ジェスチャ ハンドラー、または検証のクラス ライブラリ プロジェクトを作成するには
[ファイル] メニューで、[新規]、[プロジェクト] をクリックします。
[インストールされたテンプレート] の [Visual Basic] または [Visual C#] をクリックし、[クラス ライブラリ] をクリックします。
VSIX プロジェクトを作成するには
コードを含むコンポーネントを作成する場合は、最初にクラス ライブラリ プロジェクトを作成するのが最も簡単な方法です。 コードはそのプロジェクトに追加します。
VSIX プロジェクトを作成する。
ソリューション エクスプローラーで、ソリューションのショートカット メニューを開き、[追加]、[新しいプロジェクト] の順にクリックします。
[インストールされたテンプレート] の [Visual C#] または [Visual Basic] を展開し、[機能拡張] をクリックします。 中央の列で、[VSIX プロジェクト] をクリックします。
VSIX プロジェクトをソリューションのスタートアップ プロジェクトとして設定します。
- ソリューション エクスプローラーで、VSIX プロジェクトのショートカット メニューを開き、[スタートアップ プロジェクトに設定] をクリックします。
source.extension.vsixmanifest を開きます。 マニフェスト エディターでファイルが開きます。
[メタデータ] タブで、VSIX の名前と説明のフィールドを設定します。
[Install Targets] (インストールの対象) タブで、[新規作成] をクリックし、Visual Studio の Ultimate エディションおよび Premium エディションを設定します。
[アセット] タブで、コンポーネントを Visual Studio 拡張機能に追加します。
[新規作成] をクリックします。
コードを含むコンポーネントの場合は、[Add New Asset] (新しいアセットの追加) ダイアログ ボックスで、次のフィールドを設定します。
[種類] =
Microsoft.VisualStudio.MefComponent
[ソース] =
現在のソリューション内のプロジェクト
[プロジェクト] =
Your class library project
[Embed in this folder] (このフォルダーに埋め込み) =
(empty)
その他の種類のコンポーネントについては、次のセクションのリンクを参照してください。
コンポーネントの開発
メニュー コマンドやジェスチャ ハンドラーなどの各コンポーネントに対し、個別のハンドラーを定義する必要があります。 同じクラス ライブラリ プロジェクトに複数のハンドラーを設定できます。 次の表は、さまざまな種類のハンドラーの一覧です。
拡張機能の種類 |
トピック |
各コンポーネントの一般的な宣言方法 |
---|---|---|
メニュー コマンド |
[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 の実験用のインスタンスでモデリング プロジェクトを生成または開き、図を生成または開きます。
拡張機能が読み込まれて実行されます。
[デバッグなしで開始] を使用したがデバッガーを使用する必要がある場合は、Visual Studio のメイン インスタンスに戻ります。 [デバッグ] メニューの [プロセスにアタッチ] をクリックします。 ダイアログ ボックスで、Visual Studio の実験用インスタンスを選択します。プログラム名は devenv です。
拡張機能のインストールとアンインストール
自分のコンピューターまたは他のコンピューターにおいて Visual Studio のメイン インスタンスで拡張機能を実行するには、次の手順を実行します。
自分のコンピューターで、拡張機能プロジェクトによってビルドされた .vsix ファイルを見つけます。
ソリューション エクスプローラーで、プロジェクトのショートカット メニューを開き、[エクスプローラーでフォルダーを開く] をクリックします。
bin\*\YourProject.vsix ファイルを見つけます。
拡張機能をインストールする対象のコンピューターに .vsix ファイルをコピーします。 自分のコンピューターでも別のコンピューターでもかまいません。
- ターゲット コンピューターは、source.extension.vsixmanifest の [Installation Targets] (インストールの対象) タブで指定した Visual Studio のいずれかのエディションを搭載している必要があります。
ターゲット コンピューターで .vsix ファイルを開きます。たとえば、ダブルクリックして開きます。
Visual Studio 拡張機能インストーラーが起動され、拡張機能がインストールされます。
Visual Studio を起動または再起動します。
拡張機能をアンインストールするには
[ツール] メニューの [拡張機能マネージャー] をクリックします。
[インストール済みの拡張機能] を展開します。
拡張機能を選択し、[アンインストール] をクリックします。
拡張機能の障害が原因で読み込みが失敗し、エラー ウィンドウにレポートが生成されることがまれにありますが、それは拡張機能マネージャーには表示されません。 その場合は、次の場所からファイルを削除することで、拡張機能を削除できます (%LocalAppData% は、通常は DriveName:\Users\UserName\AppData\Local です)。
%LocalAppData%\Microsoft\VisualStudio\12.0\Extensions