次の方法で共有


ProvideMenuResourceAttribute クラス

定義

VSPackage で使用されるメニュー リソースに関する登録情報を提供します。 このクラスは継承できません。

public ref class ProvideMenuResourceAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
public ref class ProvideMenuResourceAttribute sealed : Microsoft::VisualStudio::Shell::RegistrationAttribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)]
public sealed class ProvideMenuResourceAttribute : Microsoft.VisualStudio.Shell.RegistrationAttribute
[<System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=true, Inherited=true)>]
type ProvideMenuResourceAttribute = class
    inherit RegistrationAttribute
Public NotInheritable Class ProvideMenuResourceAttribute
Inherits RegistrationAttribute
継承
ProvideMenuResourceAttribute
属性

注釈

呼び出すタイミング

ProvideMenuResourceAttributeクラスに 1 つ以上のMicrosoft.VisualStudio.Packageメニュー リソースが含まれている場合に を実装IVsPackageする派生クラスまたはクラスに を適用します。 リソースを regpkg.exe または同様の登録ツールに登録します。 詳細については、「 VSPackage の登録」を参照してください。

基本的な使用方法

クラスは ProvideMenuResourceAttribute 、メニュー リソースのリソース ID とバージョン番号を定義し、regpkg.exe などの登録ツールでメニュー リソースを Visual Studio に登録できるようにします。 Visual Studio は、登録済みのメニュー リソースを持つ VSPackage を検出すると、VSPackage またはパッケージのマネージド DLL またはサテライト DLL からリソース情報を取得し、メニューを Visual Studio メニュー システムにマージします。 を使用 ProvideMenuResourceAttributeするには、 を実装する Package派生クラスまたは クラスに配置します IVsPackage

メニュー リソースを正しくマージするには、リソース DLL がサテライト DLL 規則に従っている必要があります。 assemblyfile>UI.dll という名前<を付け、適切なローカライズされたサブディレクトリに配置する必要があります。 メニューとメニュー リソースの詳細については、「 VSPackage でユーザー インターフェイスの要素コマンド、メニュー、ツール バーを追加する方法」を参照してください。

この属性クラスは、外部登録ツールのデータを提供するためにのみ使用されます。 VSPackage の実行時の動作には影響しません。

注意

C# では、"Attribute" という単語が属性クラスの名前に自動的に追加されます。 C# コードでは、この属性を として ProvideMenuResource参照します。

レジストリ エントリ

  • によって次のレジストリ エントリが作成 ProvideMenuResourceAttributeされます。

  • <VSROOT>\Menus\

  • <VSROOT>\Menus\{PackageGuid}=", ResourceID, Version"

サンプル

クラスの実装は、 ProvideMenuResourceAttribute マネージド サンプルで確認できます。 この属性と自動登録に使用されるその他すべての属性の Package 標準の場所は、サンプルで使用される言語に応じて、VsPkg.cs、VsPkg.vb、またはVsPkg.cppの クラスの実装に隣接しています。

コンストラクター

ProvideMenuResourceAttribute(Int16, Int32)

このコンストラクターは、指定されたリソース ID とバージョン番号を使用して、新しい ProvideMenuResourceAttribute オブジェクトを作成します。

ProvideMenuResourceAttribute(String, Int32)

指定したリソース ID とバージョンを使用して の ProvideMenuResourceAttribute 新しいインスタンスを初期化します。

プロパティ

IconMappingFilename

メニュー リソースで定義されているアイコン識別子をイメージ モニカーにマップする CSV ファイルへのパス。 パスは、暗黙的に $PackageFolder$ にルート化された相対パスか、環境変数によって定義されたディレクトリに明示的にルート化された絶対パス (例: "%UserProfile%\dir1\dir2\MyMappingFile.csv") です。

CSV ファイルの形式は次のとおりです。

Icon guid, Icon id, Moniker guid, Moniker id
b714fcf7-855e-4e4c-802a-1fd87144ccad,1,fda30684-682d-421c-8be4-650a2967058e,100
{b714fcf7-855e-4e4c-802a-1fd87144ccad},2,{fda30684-682d-421c-8be4-650a2967058e},200
etc...
ResourceID

ResourceID プロパティは、コンストラクターで設定されたリソース ID の値を返します。

TypeId

RegistrationAttribute 派生クラスが System.ComponentModel.TypeDescriptor.GetAttributes(...) と連携できるように、TypeID プロパティをオーバーライドします。このプロパティから派生した属性は、クラスに適用できるインスタンスをより適切に制御する必要がある場合にのみ、このプロパティをオーバーライドする必要があります。

(継承元 RegistrationAttribute)
Version

メニュー リソースのバージョン番号を返します。

メソッド

GetPackageRegKeyPath(Guid)

VSPackage のレジストリ パス (アプリケーションのレジストリ ルートに対する相対パス) を取得します。

(継承元 RegistrationAttribute)
Register(RegistrationAttribute+RegistrationContext)

regpkg.exe などの外部登録ツールによって呼び出されたときに VSPackage に関する登録情報を提供します。 詳細については、「VSPackage の登録」を参照してください。

Unregister(RegistrationAttribute+RegistrationContext)

指定されたコンテキストでこの属性の登録を解除します。

適用対象