方法: モデリング拡張機能を定義およびインストールする
Visual Studio Ultimate では、モデリング図に対して拡張機能を定義することができます。 これにより、図とモデルを各自のニーズに適応させることができます。 たとえば、メニュー コマンド、UML プロファイル、検証制約、およびツールボックスの項目を定義できます。 単一の拡張機能で複数のコンポーネントを定義できます。 また、これらの拡張機能を Visual Studio Integration Extension (VSIX) 形式で他の Visual Studio Ultimate ユーザーに配布することもできます。VSIX は、Visual Studio の VSIX プロジェクトを使用して生成できます。
Visual Studio SDK がインストールされていることを確認してください。
要件
Visual Studio 2010 Visualization and Modeling SDK。 詳細については、Code Gallery の「Visual Studio Visualization and Modeling SDK」を参照してください。
モデリング拡張機能ソリューションの生成
モデリング拡張機能を定義するには、次のプロジェクトを含むソリューションを生成する必要があります。
Visual Studio Integration Extension (VSIX) プロジェクト。 このプロジェクトでは、拡張機能のコンポーネントのインストーラーとして機能するファイルを生成します。 [新しいプロジェクト] ダイアログ ボックスで、[Visual C#] または [Visual Basic] を展開し、[機能拡張] をクリックします。 中央の列で、[VSIX プロジェクト] をクリックします。
プログラム コードを含むコンポーネントに必要なクラス ライブラリ プロジェクト。
1 つの拡張機能を複数のコンポーネントで構成する場合は、単一のソリューションにそれらのコンポーネントを組み込むことができます。 必要な VSIX プロジェクトは 1 つだけであり、コンポーネントはコンテンツとして VSIX の定義に追加します。
カスタム ツールボックス項目やカスタム UML プロファイルなど、コードを必要としないコンポーネントは、別個のプロジェクトを使用せずに直接 VSIX プロジェクトに追加できます。 プログラム コードが必要なメニュー コマンドなどのコンポーネントは、別個のプロジェクトを使用してさらに簡単に定義できます。
VSIX プロジェクトを設定するには
コードを含むコンポーネントを作成する場合は、最初にクラス ライブラリ プロジェクトを作成するのが最も簡単な方法です。 コードはそのプロジェクトに追加します。
VSIX プロジェクトを作成する。
ソリューション エクスプローラーでソリューションを右クリックし、[追加] をポイントして [新しいプロジェクト] をクリックします。
[インストールされたテンプレート] の [Visual C#] または [Visual Basic] を展開し、[機能拡張] をクリックします。 中央の列で、[VSIX プロジェクト] をクリックします。
VSIX プロジェクトをソリューションのスタートアップ プロジェクトとして設定します。
- ソリューション エクスプローラーで、VSIX プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。
source.extension.vsixmanifest を開きます。 マニフェスト エディターでファイルが開きます。
VSIX の名前と説明のフィールドを設定します。
[エディションの選択] をクリックし、拡張機能を実行する Visual Studio のエディションを選択します。
[コンテンツ] 一覧にコンポーネントを追加します。
[コンテンツの追加] をクリックします。
コードを含むコンポーネントの場合は、次の手順に従います。
[コンテンツ タイプの選択] で、[MEF コンポーネント] を選択します。
[ソースの選択] で、[プロジェクト] をクリックし、クラス ライブラリ プロジェクトの名前を選択します。
その他の種類のコンポーネントについては、次のセクションのリンクを参照してください。
コンポーネントの開発
メニュー コマンドやジェスチャ ハンドラーなどの各コンポーネントに対し、個別のハンドラーを定義する必要があります。 次の表は、さまざまな種類のハンドラーの一覧です。
拡張機能の種類 |
トピック |
各コンポーネントの一般的な宣言方法 |
---|---|---|
メニュー コマンド |
[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 プロファイル |
プログラム コードで定義されていません。 代わりに、次のように source.extension.vsixmanifest にコンポーネントの種類を定義します。 [コンポーネントの種類] = カスタム拡張機能 [種類] = Microsoft.VisualStudio.UmlProfile |
|
ツールボックス項目 |
プログラム コードで定義されていません。 代わりに、次のように source.extension.vsixmanifest にコンポーネントの種類を定義します。 [コンポーネントの種類] = カスタム拡張機能 [種類] = Microsoft.VisualStudio.ArchitectureTools.CustomToolboxItems |
拡張機能の開発段階での実行
拡張機能を開発段階において実行するには
Visual Studio の [デバッグ] メニューの [デバッグ開始] をクリックします。
プロジェクトがビルドされ、Visual Studio の新しいインスタンスが実験モードで起動されます。
- または、[デバッグなしで開始] をクリックします。 これにより、プログラムの起動時間が短縮されます。
Visual Studio の実験用のインスタンスでモデリング プロジェクトを生成するかまたは開き、図を生成するかまたは開きます。
拡張機能が読み込まれて実行されます。
[デバッグなしで開始] を使用したがデバッガーを使用したい場合は、Visual Studio のメイン インスタンスに戻ります。 [デバッグ] メニューの [プロセスにアタッチ] をクリックします。 ダイアログ ボックスで Visual Studio の実験用インスタンスを選択します。プログラム名は devenv です。
拡張機能を Visual Studio のメイン インスタンスで実行するには、「拡張機能のインストールとアンインストール」の手順に従います。
拡張機能のインストールとアンインストール
Visual Studio 拡張機能は、自分のコンピューターと他のコンピューターの両方にインストールできます。
拡張機能をインストールするには
自分のコンピューターで、拡張機能プロジェクトによってビルドされた .vsix ファイルを見つけます。
ソリューション エクスプローラーで、プロジェクトを右クリックし、[エクスプローラーでフォルダーを開く] をクリックします。
bin\*\<プロジェクト>.vsix ファイルを見つけます。
拡張機能をインストールする対象のコンピューターに .vsix ファイルをコピーします。 自分のコンピューターでも別のコンピューターでもかまいません。
- インストール先のコンピューターには、source.extension.vsixmanifest に指定した Visual Studio のいずれかのエディションがインストールされている必要があります。
インストール先のコンピューター上で、.vsix ファイルをダブルクリックします。
Visual Studio 拡張機能インストーラーが起動され、拡張機能がインストールされます。
Visual Studio を起動または再起動します。
拡張機能をアンインストールするには
[ツール] メニューの [拡張機能マネージャー] をクリックします。
[インストール済みの拡張機能] を展開します。
拡張機能を選択し、[アンインストール] をクリックします。
拡張機能の障害が原因で読み込みが失敗し、エラー ウィンドウにレポートが生成されることがまれにありますが、それは拡張機能マネージャーには表示されません。 その場合は、次の場所からファイルを削除して、拡張機能を削除します (%LocalAppData% は通常、DriveName:\Users\UserName\AppData\Local)。
UML モデルを読み込み、ファイルを生成するアプリケーションを記述します。