次の方法で共有


方法: モデリング拡張機能を定義およびインストールする

Visual Studio Ultimate では、モデリング図に対して拡張機能を定義することができます。 これにより、図とモデルを各自のニーズに適応させることができます。 たとえば、メニュー コマンド、UML プロファイル、検証制約、およびツールボックスの項目を定義できます。 単一の拡張機能で複数のコンポーネントを定義できます。 また、これらの拡張機能を Visual Studio Integration Extension (VSIX) 形式で他の Visual Studio Ultimate ユーザーに配布することもできます。VSIX は、Visual Studio の VSIX プロジェクトを使用して生成できます。

Visual Studio SDK がインストールされていることを確認してください。

要件

モデリング拡張機能ソリューションの生成

モデリング拡張機能を定義するには、次のプロジェクトを含むソリューションを生成する必要があります。

  • Visual Studio Integration Extension (VSIX) プロジェクト。 このプロジェクトでは、拡張機能のコンポーネントのインストーラーとして機能するファイルを生成します。 [新しいプロジェクト] ダイアログ ボックスで、[Visual C#] または [Visual Basic] を展開し、[機能拡張] をクリックします。 中央の列で、[VSIX プロジェクト] をクリックします。

  • プログラム コードを含むコンポーネントに必要なクラス ライブラリ プロジェクト。

1 つの拡張機能を複数のコンポーネントで構成する場合は、単一のソリューションにそれらのコンポーネントを組み込むことができます。 必要な VSIX プロジェクトは 1 つだけであり、コンポーネントはコンテンツとして VSIX の定義に追加します。

カスタム ツールボックス項目やカスタム UML プロファイルなど、コードを必要としないコンポーネントは、別個のプロジェクトを使用せずに直接 VSIX プロジェクトに追加できます。 プログラム コードが必要なメニュー コマンドなどのコンポーネントは、別個のプロジェクトを使用してさらに簡単に定義できます。

VSIX プロジェクトを設定するには

  1. コードを含むコンポーネントを作成する場合は、最初にクラス ライブラリ プロジェクトを作成するのが最も簡単な方法です。 コードはそのプロジェクトに追加します。

  2. VSIX プロジェクトを作成する。

    1. ソリューション エクスプローラーでソリューションを右クリックし、[追加] をポイントして [新しいプロジェクト] をクリックします。

    2. [インストールされたテンプレート][Visual C#] または [Visual Basic] を展開し、[機能拡張] をクリックします。 中央の列で、[VSIX プロジェクト] をクリックします。

  3. VSIX プロジェクトをソリューションのスタートアップ プロジェクトとして設定します。

    • ソリューション エクスプローラーで、VSIX プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。
  4. source.extension.vsixmanifest を開きます。 マニフェスト エディターでファイルが開きます。

  5. VSIX の名前と説明のフィールドを設定します。

  6. [エディションの選択] をクリックし、拡張機能を実行する Visual Studio のエディションを選択します。

  7. [コンテンツ] 一覧にコンポーネントを追加します。

    1. [コンテンツの追加] をクリックします。

    2. コードを含むコンポーネントの場合は、次の手順に従います。

      [コンテンツ タイプの選択] で、[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

{...

検証制約

方法: UML モデルの検証制約を定義する

[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 プロファイル

方法: プロファイルを定義して UML を拡張する

プログラム コードで定義されていません。 代わりに、次のように source.extension.vsixmanifest にコンポーネントの種類を定義します。

[コンポーネントの種類] = カスタム拡張機能

[種類] = Microsoft.VisualStudio.UmlProfile

ツールボックス項目

方法: カスタム モデリング ツールボックス項目を定義する

プログラム コードで定義されていません。 代わりに、次のように source.extension.vsixmanifest にコンポーネントの種類を定義します。

[コンポーネントの種類] = カスタム拡張機能

[種類] = Microsoft.VisualStudio.ArchitectureTools.CustomToolboxItems

拡張機能の開発段階での実行

拡張機能を開発段階において実行するには

  1. Visual Studio の [デバッグ] メニューの [デバッグ開始] をクリックします。

    プロジェクトがビルドされ、Visual Studio の新しいインスタンスが実験モードで起動されます。

    • または、[デバッグなしで開始] をクリックします。 これにより、プログラムの起動時間が短縮されます。
  2. Visual Studio の実験用のインスタンスでモデリング プロジェクトを生成するかまたは開き、図を生成するかまたは開きます。

    拡張機能が読み込まれて実行されます。

  3. [デバッグなしで開始] を使用したがデバッガーを使用したい場合は、Visual Studio のメイン インスタンスに戻ります。 [デバッグ] メニューの [プロセスにアタッチ] をクリックします。 ダイアログ ボックスで Visual Studio の実験用インスタンスを選択します。プログラム名は devenv です。

拡張機能を Visual Studio のメイン インスタンスで実行するには、「拡張機能のインストールとアンインストール」の手順に従います。

拡張機能のインストールとアンインストール

Visual Studio 拡張機能は、自分のコンピューターと他のコンピューターの両方にインストールできます。

拡張機能をインストールするには

  1. 自分のコンピューターで、拡張機能プロジェクトによってビルドされた .vsix ファイルを見つけます。

    1. ソリューション エクスプローラーで、プロジェクトを右クリックし、[エクスプローラーでフォルダーを開く] をクリックします。

    2. bin\*\<プロジェクト>.vsix ファイルを見つけます。

  2. 拡張機能をインストールする対象のコンピューターに .vsix ファイルをコピーします。 自分のコンピューターでも別のコンピューターでもかまいません。

    • インストール先のコンピューターには、source.extension.vsixmanifest に指定した Visual Studio のいずれかのエディションがインストールされている必要があります。
  3. インストール先のコンピューター上で、.vsix ファイルをダブルクリックします。

    Visual Studio 拡張機能インストーラーが起動され、拡張機能がインストールされます。

  4. Visual Studio を起動または再起動します。

拡張機能をアンインストールするには

  1. [ツール] メニューの [拡張機能マネージャー] をクリックします。

  2. [インストール済みの拡張機能] を展開します。

  3. 拡張機能を選択し、[アンインストール] をクリックします。

拡張機能の障害が原因で読み込みが失敗し、エラー ウィンドウにレポートが生成されることがまれにありますが、それは拡張機能マネージャーには表示されません。 その場合は、次の場所からファイルを削除して、拡張機能を削除します (%LocalAppData% は通常、DriveName:\Users\UserName\AppData\Local)。

UML モデルを読み込み、ファイルを生成するアプリケーションを記述します。

参照

概念

方法: プロファイルを定義して UML を拡張する

その他の技術情報

方法: カスタム モデリング ツールボックス項目を定義する

方法: UML モデルの検証制約を定義する

方法: モデリング図にメニュー コマンドを定義する